一些基础的面试总结
发布日期:2022-03-16 03:25:45 浏览次数:39 分类:技术文章

本文共 3097 字,大约阅读时间需要 10 分钟。

1.varchar 和 char 的区别
   1、Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节;
   2、char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节;
   3、Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian";
   4、而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
    由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!
2.一个项目一般分哪几个阶段,有什么要求
第一步:需求调研分析    
第二步:概要设计   
第三步:详细设计   
第四步:编码      
第五步:测试   
第六步:软件交付准备   
第七步:验收   用户验收。
3.接口和抽象类之间的继承关系
1.类可以实现多个接口而只能继承一个超类。
2.抽象类可以有非抽象方法而接口的方法只能都是抽象的。
3.抽象类可以定义和使用变量而接口则不可以。
4.抽象类中的方法可以有各种不同的修饰符,而接口中的方法默认都是public,不允许字面定修饰符。
4.一个项目中的耦合度从强到弱分别是
(1)内容耦合。
(2)公共耦合
(3)外部耦合
(4)控制耦合
(5)标记耦合
(6)数据耦合
(7)非直接耦合
5.优化SQL 的方法有哪些
1.尽可能建立索引,包括条件列,连接列,外键列;
2.尽可能让where中的列顺序和复合索引中的列顺序一样;
3.尽可能不要使用select * ,而只列出自己需要的字段列表;
4.尽可能减少子查询的层数;
5.尽可能在子查询中进行数据筛选。
6.switch 方面的列子
int month = 3;
switch (month) {
case 1: System.out.println("1"); break;
case 2: System.out.println("2"); break;
case 3: System.out.println("3"); break;
case 4: System.out.println("4"); break;
case 5: System.out.println("5"); break;
case 6: System.out.println("6"); break;
case 7: System.out.println("7"); break;
case 8: System.out.println("8"); break;
case 9: System.out.println("9"); break;
case 10: System.out.println("10"); break;
case 11: System.out.println("11"); break;
case 12: System.out.println("12"); break;
default:  System.out.println("这不是一个有效的月数!"); break;
}
7.数组和字符串的长度分别怎么表示?
  int[]  ary = {1,3,5,7,8} ;    //数组中装了5个元素
  int a = ary.length;         //数组有个属性为该数组的长度
  String str = "helloword!";   //字符串底层是字符数组,字符个数就是字符串的长度
  int s = str.length();        //字符串类String有个length()方法,取得当前字符串的长度
8.java编译后的文件后缀是什么?原文件的后缀是什么?java.exe是不是JAVA的编译器文件

.class  .java  不是

9.String str = "ab,cd,ef,gh";  用最简单的方法获取字符串逗号的个数?
    System.out.println(((String[])str.split(",")).length - 1);
10.union和union all的区别?
union查询出的数据会去掉重复的结果,只显示一个,nuion all 则是将查询的结果合并后就返回,不会去掉重复的数据。
11.truncate,delete,drop的区别?
注意:这里说的delete是指不带where子句的delete语句 
相同点:
truncate和不带where子句的delete, 以及drop都会删除表内的数据 
不同点: 
1. truncate和 delete只删除数据不删除表的结构(定义) ,drop语句将删除表中的数据以及表的结构。
2.delete语句是dml,这个操作会放到系统回滚段中,事务提交之后才生效; truncate,drop是ddl, 操作立即生效,原数据不放到系统回滚段中,删除的数据是不能恢复的. 
3.速度,一般来说: drop>; truncate >; delete 
4.安全性:小心使用drop 和truncate,尤其没有备份的时候.
12.什么叫参数绑定(变量绑定)?以及参数绑定的意义?
绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询绑定值在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的使用,节省内存 ;缺点是不能使用histogram,sql优化比较困难
13.用sql查询出重复的员工信息?(code是员工编号)
1.select * from 员工表 where code in (
select code from 员工表 group by code having count(code) >= 2
)
2.select * from 员工表 where code in (
select code from 员工表 group by code having count(1) >1
)
--查出的只是重复的字段,只显示一个
select code from table group by 有重复的字段(比如:code )having count(1)>1
14.数据库建索引规则?
1、表的主键、外键必须有索引; 
2、数据量超过300的表应该有索引; 
3、经常与其他表进行连接的表,在连接字段上应该建立索引; 
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 
5、索引应该建在选择性高的字段上; 
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: 
A、正确选择复合索引中的主列字段,一般是选择性较好的字段; 
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否 
     极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引; 
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; 
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; 
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 
8、频繁进行数据操作的表,不要建立太多的索引; 
   

转载地址:https://blog.csdn.net/zhizhi12024/article/details/9090379 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Oracle "CONNECT BY"的使用
下一篇:log4cpp源码阅读:Appender组件学习

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年03月29日 18时47分27秒