面试经验3.6
1:8种基本类型?
byte,short,long,int,char,float,double,boolean
2:String,StringBuilder,StringBuffer的区别?
StringBuilder,StringBuffer可以储存和操作字符串,String是只读字符串。
StringBuilder是在单线程环境下使用的,它的所有方法没有被synchronized修饰,因此效率比StringBuffer高。
3:阐述静态变量和实例的区别?
静态变量是被static修饰的变量,它属于类,不属于类的任何一个对象,静态变量在内存中有且仅有一个拷贝。
实例变量必须依存于某一实例,需要创建对象,然后通过对象才能访问到它。
4:final关键字有几种用法?
修饰类:表示类不可以被继承
修饰方法:表示方法不可以被重写(可以重载)
修饰变量:表示变量被第一次赋值后不可修改
5:final,finally,finalize的区别?
final如上;
finally通常用于try-catch之后,这里的代码只要jvm不关闭就可以执行,可以将释放外部资源的代码写在finally块中;
finalize:Object类中定义的方法,这个方法是由垃圾收集器在销毁对象的时候调用的,通过重写finalize方法可以整理系统资源或者执行其他清理工作。
6:JSP有哪些内置对象?作用分别是什么?
request:封装客户端的请求,其中包含来自GET或POST请求的参数;
response:封装服务器对客户端的响应;
pageContext:通过该对象可以获取其他对象;
session: 封装用户会话的对象;
application:封装服务器运行环境的对象;
out: 输出服务器响应的输出流对象;
config: Web应用的配置对象;
page: JSP页面本身(相当于Java程序中的this);
exception:封装页面抛出异常的对象。
7:如何解析大的json数据?
用流的方式进行解析,参考https://blog.csdn.net/xbliu564/article/details/78944755/
8:线程的生命周期?
在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。
https://www.cnblogs.com/sunddenly/p/4106562.html
9:Spring和SpringMVC的区别?
Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring。
简单点的话可以将SpringMVC类比于Struts。
Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring。
Spring可以说是一个管理bean的容器,也可以说是包括很多开源项目的总称,spring mvc是其中一个开源项目,所以简单走个流程的话,http请求一到,由容器(如:tomact)解析http搞成一个request,通过映射关系(路径,方法,参数啊)被spring mvc一个分发器去找到可以处理这个请求的bean,那tomcat里面就由spring管理bean的一个池子(bean容器)里面找到,处理完了就把响应返回回去。
SpringMVC是一个MVC模式的WEB开发框架;
Spring是一个通用解决方案, 最大的用处就是通过Ioc/AOP解耦, 降低软件复杂性, 所以Spring可以结合SpringMVC等很多其他解决方案一起使用, 不仅仅只适用于WEB开发
https://www.cnblogs.com/rainbow70626/p/9784938.html
10:输入一个字符串,反向输出,并且大写变成小写,小写变成大写?
public static void out(){ String str = "AbCd"; System.out.println(str); for(int i = str.length()-1;i>=0;i--){ if(str.charAt(i)>= 'a' & str.charAt(i)<= 'z') System.out.print((char)(str.charAt(i)-32)); else if (str.charAt(i)>= 'A' & str.charAt(i)<= 'Z') System.out.print((char)(str.charAt(i)+32)); } }
11:判断一个数是否是回文数?比如121,12321,1234321
public static boolean judge(int n){ String str = Integer.toString(n); StringBuilder sb = new StringBuilder(str); sb = sb.reverse(); if(sb.toString().equals(str)){ System.out.println("true"); return true; } else{ System.out.println("false"); return false; } }
值得注意的是,reverse在用完之后,无论是否赋值给别的对象,自身都会被倒转。

浙公网安备 33010602011771号