2021.1.22记录一次面试
c/c++和java布尔值的区别:
C/C++遵循的规则是“非零即为真”,即所有不是零的数,都可以认为是“true”,而仅把零当做false。Java语言的布尔类型变量,其赋值只能是true和false。除此之外,没有其他的值可以赋给布尔变量。不能用1和0分别代替true和false。java语言中的布尔变量与整型变量没关系。
String、StringBuffer、StringBuilder三者异同:
String(JDK1.0):不可变的字符序列(只要修改就要重新建);
StringBuffer(JDK1.0):可变的字符序列;线程安全的,效率低;
StringBuilder(JDK1.5新增):可变的字符序列;线程不安全的,效率高;
三者都是1.8及以前底层用char[]存储,1.9开始用byte[]存储。
问题1.System.out.println(StringBuffer.length());//3
因为StringBuffer重写了length()方法,返回的不是容量而是实际使用长度。
问题2.扩容问题:如果要添加的数据底层数组盛不下了,那就需要扩容底层的数组。默认情况下,扩容为原来容量的2倍 + 2,同时将原有数组中的元素复制到新的数组中。
指导意义:开发中建议大家使用:StringBuffer(int capacity) 或StringBUilder(int capacity)
常用方法(StringBuffer和StringBuilder相同):
增:append(xxx)
删:delete(int start, int end)
改:setCharAt(int n, char ch) 改一个字符/ replace(int start, int end, String str)把[start,end)替换成str
查:charAt(int n) indexOf(String str)
插:insert(int offset, xxx)
长度:length()
反转:reverse()
字串:subString(int start, int end)返回值才是子串,其余方法都是自身变化。
delete from 表名 [where 条件]
我写成了:delete * from 表名 [where 条件]
-- 查询姓名第二个字是化的人 ( _:单个任意字符 %:多个任意字符)
SELECT * FROM student WHERE NAME LIKE "_化%";
实习题目:基于JFinal框架学习并开发一个2张表的增删查改操作:前端界面自行设计
自学一天看JFinal文档,感觉不太行,赶紧跑路。