新人报到,写得不好请多指教。话不多说让我们直接开整吧!
数据类型****大小****默认值
说说&和&&的区别
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
Integer与int的区别
int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。
在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。
另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
ArrayList 和 LinkedList 有什么区别
**ArrayList和LinkedList都实现了List接口,有以下的不同点: **
1.ArrayList是基于索引的数据接口。它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。以此对应,LinkedList是以元素列表的形式存储的数据,每一个元素都和它的前一个后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。
2.相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。
3.LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素
抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么
1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2、抽象类要被子类继承,接口要被类实现。
3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该 类也只能为抽象类。
6、抽象方法只能申明,不能实现。abstract void abc();不能写成abstract void abc(){}。
7、抽象类里可以没有抽象方法 。
8、如果一个类里有抽象方法,那么这个类只能是抽象类 。
9、抽象方法要被实现,所以不能是静态的,也不能是私有的。
10、接口可继承接口,并可多继承接口,但类只能单根继承
JDBC 编程的步骤
(1) 注册驱动;
(2) 获取连接对象 Connection;
(3) 创建 Statement 对象;
(4) 运行 SQL 语句;
(5) 处理结果;
(6) 关闭连接释放资源。
springmvc工作流程图及介绍
(1)客户端通过url发送请求
(2-3)核心控制器Dispatcher Servlet接收到请求,通过系统或自定义的映射器配置找到对应的handler,并将url映射的控制器controller返回给核心控制器。
(4)通过核心控制器找到系统或默认的适配器
(5-7)由找到的适配器,调用实现对应接口的处理器,并将结果返回给适配器,结果中包含数据模型和视图对象,再由适配器返回给核心控制器
(8-9)核心控制器将获取的数据和视图结合的对象传递给视图解析器,获取解析得到的结果,并由视图解析器响应给核心控制器
(10)核心控制器将结果返回给客户端
Mybatis 缓存
一级缓存:Mybatis 的一级缓存的作用域是 session,当 openSession()后,如果执行相同的SQL(相同语句和参数),Mybatis 不进行执行 SQL,而是从缓存中命中返回。
二级缓存:Mybatis 的二级缓存的作用域是一个 mapper 的 namespace,同一个 namespace 中查询 sql 可以从缓存中命中。二级缓存是可以跨 session 的。
以上是我整理的一些面试问到的知识点,我总结出了互联网公司java程序员在面试中涉及到的绝大部分架构面试题
及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、****高并发等架构技术资料)
获取资料的方式:加QQ群:739486042 进群即领取
来源:https://www.jianshu.com/p/90f641c38a11