一些基础的面试总结
发布日期: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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年03月29日 18时47分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C# INI文件操作
2019-04-25
Codeforces Round #726 (Div. 2)
2019-04-25
springboot 发送,简单,html格式,带本地附件,带远程附件邮件详解
2019-04-25
java读取SHP格式文件,解决中文乱码
2019-04-25
Mysql执行单个sql脚本、执行多个sql脚本
2019-04-25
Oracle 导入导出数据库脚本
2019-04-25
SpringBoot 集成webSocket 打成jar包ba
2019-04-25
富文本编辑的内容导出为word
2019-04-25
字节跳动:估值迷雾下各自的小九九
2019-04-25
sql注入
2019-04-25
textarea在光标后追加内容,并将换行符替换成br标签
2019-04-25
kafka客户端脚本windows版
2019-04-25
zookeeper基础教程
2019-04-25
zookeeper单机版安装教程
2019-04-25
zookeeper集群版安装教程
2019-04-25
Spring @Cacheable当返回值为null时报错解决方案
2019-04-25
小数在计算机中如何存储?
2019-04-25
什么是二分查找、插值查找、斐波那契查找和索引查找?
2019-04-25
什么是二叉查找树,有什么优势?
2019-04-25
教你玩转二叉查找树的结点插入和删除操作
2019-04-25