本文已参与「新人创作礼」活动,一起开启掘金创作之路。
- 个人简介:微信公众号关注:SteveCode。为您分享更多的知识学术。生于忧患死于安乐
- 专注Java技术干货分享,Java基础技术、数据结构、相关工具、Spring全家桶、intellij idea......
一、Java基础部分
1、使用length属性获取数组长度,
2、public、private、protected、friendly区别
2、Collection和Collections区别
3、String s=new String(‘xyz’);创建了几个object对象
创建两个对象 ,堆内存有两个不同的地址值。s\new String();
4、short s1,s1=s1+1;是否有错?
有错。s1=s1+1结果是int类型,而 s 是short类型,需要强制类型转换。
5、Overriding和Overloading区别
6、Set里面的元素不能重复,用什么方法区分重复与否。
7、给出一个常见的runtime exception。
8、error和exception区别。
error错误,是程序本身无法处理的异常。导致程序中断、程序无法处理这些错误
exception ,异常可以捕获的异常,程序本身可以处理的异常。
10、abstract class和interface 的区别。
11、是否可以继承String类。
12、try{}里有一个return语句,紧跟在try后的finally里的code会不会被执行,什么时候执行,return前执行还是return后执行。
13、最有效率的方法算2*8等于几
14、两个对象值相同,x.equal(y)==true,但是却可有不同的hashcode,这句话对不对。
不对,equal为true,那么hashcode也一定相等。
equal相同那么hashcode相同 hashcode相等,那么equal不一定相等
15、值传递和引用传递
16、switch是否作用在byte、long、string上。
不可以作用在long与long的包装类上、double与包装类上
17、ArrayList和Vector区别,HashMap和Hashtable区别(了解这几个类的底层jdk中的编码方式)。
18、GC是什么,为什么要有GC,简单介绍GC。
19、float f=3.4是否正确。
20、介绍Java中的Collection framework。
vector Linkedhashset Linkedhashmap
21、Collection框架中实现比较方法
22、String和Stringbuffer的区别
23、final、finally、finalize区别
24、面向对象的特征
25、String是最基本的数据类型吗。
26、运行时异常和一般异常的区别
运行时异是jvm抛出的异常,(运行时的程序错误)需要修改源代码。
27、说出ArrayList、Vector、Linkedlist的存储性能和特性
28、heap和stack区别
29、Java中的异常处理机制的简单原理和应用
异常使用就是使用了面向对象的的方式处理异常。把程序会发生的每一种异常都放在一个对象 中。
30、垃圾回收的原理和特点,并考虑2种回收机制
有点:Java开发人员不必考虑去回收对象,gc帮我们做了,有效的防止了内存的泄露。可以有效的使用内存。
31、说出一些常用的 集合类和方法
size()、add()、remove()、addAll()、removeAll()。。。。
32、描述一下JVM加载Class文件的原理和机制
33、排序的几种方法,了解。
34、Java语言如何进行异常处理,throws,throw,try catch finally代表什么意义?
try块中可以抛出异常吗
try块表示程序正常的业务执行代码。如果程序在执行try块的代码时出现了“非预期”情况,JVM将会生成一个异常对象,这个异常对象将会被后面相应的catch块捕获。
catch块表示一个异常捕获块。当程序执行try块引发异常时,这个异常对象将会被后面相应的catch块捕获。
throw用于手动地抛出异常对象。throw后面需要一个异常对象。
throws用于在方法签名中声明抛出一个或多个异常类,throws关键字后可以紧跟一个或多个异常类。
对于一个完整的异常处理流程而言,try块是必须的,try块后可以紧跟一个或多个catch块,最后还可以带一个finally块。
35、一个’.java’源文件是否可以包括多个类,有什么限制。
可以有,但是只能有一个public修饰的类。public修饰的类就是类名
36、Java中有几种类型流,jdk为每种类型的流提供了一些抽象类以供继承,请分别说出它们是哪些类。
37、Java中会存在内存泄漏吗,请简单描述。
不一定,Java中有垃圾回收机制gc。可以不用的对象可以被回收。例如长的生命周期的对象可能会反生内存泄露。
38、静态变量和实例变量的区别。
实例变量由对象的引用调用,而静态变量在类的加载过程中就会被初始化,调用方式类名.静态变量名,对象的引用.变量名
39、什么是Java序列化,如何实现java序列化。
40、是否可以从一个static方法内部发生对非static方法调用。
不能,因为static方法在类的加载时就初始化了就已经分配到方法区, 非static方法加类加载完成后由对象的引用调用。
48、是否可以在static环境中访问非static变量?
答案是不可以,因为static变量是属于类的,在类加载的时候就被初始化了,这时候非静态变量并没有加载,故非静态变量不能访问。
41、写clone方法,通常都有一行代码。
public class cat implements Cloneable{ private int age; private String name: } 写一个启动类 psvm{ Cat p = new cat(23, "zhang"); cat p1 = (Cat) p.clone(); sout(p) sout(p2) } 输出: 不同地址值
42、Java中如何跳出多重嵌套循环
48、break、return、continue
用于循环的有:直接跳出循环break,结束一次继续执行continue
43、说出常用类、包、接口,各举5个。
类:object、String、Long、Integer、Thread
接口:Serialization、List、Set、Map、Collection
包:Java.long、java.util、java.sql、javax.jnlp、java.io
44、Java中实现线程的方法,用关键字修饰同步方法。
继承Thread、实现runnable接口、实现callable接口。synchronized
45、同步和异步区别。
同步:发送一个请求,等待返回,然后再发送下一个请求 异步:发送一个请求,不等待返回,随时可以再发送下一个请求 同步可以避免出现死锁,读脏数据的发生,一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按顺序来修改。 异步则是可以提高效率了,现在cpu都是双核,四核, 异步处理 的话可以同时做多项工作,当然必须保证是可以并发处理的。 这些都是对的。 同步和异步最大的区别就在于。一个需要等待,一个不需要等待。 比如广播,就是一个异步例子。发起者不关心接收者的状态。不需要等待接收者的返回信息 电话,就是一个同步例子。发起者需要等待接收者,接通电话后,通信才开始。需要等待接收者的返回信息
46、线程同步的方法。
47、字符串常用方法,字符串转化为整型数方法,整型数转化为字符串方法。
字符串分割split、替换、大小、indexof、length()、concat()连接两个或多个字符串、toString、blog.csdn.net/leileibroth…
int i = Integer.parseIn(String str);
int i = Integer.valueOf().intValue();
注:Integer.parseIn 和 Integer.valueOf 不同,前者生成的是整型,而后者是一个对象,所以要通过intValue()来获得对象的值;
字串转成 Double, Float, Long 的方法大同小异.
String str = String.valueOf(int i);
String str = Integer.toString(int i);
注: Double, Float, Long 的方法大同小异.
二、Java高级
1、简述面向对象的理解,并举例说出你的理解。
2、写出单例模式。
3、写出一种11位手机号的正则表达式
4、实现字符串多个空格转换一个空格
5、字符串常用方法,substring(),split()。
6、start()和run()区别。
7、写出知道的设计模式。
8、Webservice介绍。(这个我自己没用过,渣渣了)
9、说出Servlet生命周期,Servlet和CGI区别。
10、sleep和wait的区别。
11、什么是反射,如何实现。
12、检查字符串回文,实现英文中单词个数和单词次数统计(部分公司要求较高,需要手动编程,百度查找一些面试常用编程题即可)。
13、tcp/ip协议三次握手。
14、http协议几种请求方式,区别。
15、Ajax请求是否可以实现同步。
16、隐藏URL方式。
17、描述取到一个网页内容的实现步骤,不需要具体实现过程(就是爬虫:取到网页的URL,然后从URL中国获取网页内容),考察逻辑思维能力。
18、简述form表单提交post方法与get方法在字符编码、http协议方面的区别。
19、一个http请求从开始到结束都经历了哪些过程,简写流程图。
三、框架(只介绍自己熟悉)
1 、Spring中的事务管理,支持哪几种方式,以及每种方式具体方法。
四、数据库
4 、数据库性能优化常用基础知识,百万级数据优化(百度搜搜即可)。
6 、了解redis,memcache,mongodb等,最好有项目使用经验。
8 、一个微博评论功能的数据库设计,部门表和员工表的设计,权限管理系统的数据库设计(数据库设计这个是一个重点,面试了几家公司都问到了,而且是重点)。
五、linux基础
六、前端基础
1 、javascript中怎样选中一个checkbox,设置它无效的方式。
document.all.cb1[0].disabled = true;
2 、form表单 的input可以设置readonly和disable区别。
readonly和disabled都是可以禁止用户更改表单中的内容。
1. readonly只针对input(text/password)和textarea有效,而disabled对于所有的表单元素都有效,包括select,radio,checkbox等
2. 表单在使用GET或POST方式提交时,表单元素在使用了readonly后,值可以传递到后台;而表单元素在使用disabled后值不可以传递到后台
3 、javascript变量范围有什么不同,全局变量和局部变量。
主要数据类型:string, boolean, number
Windows对象、Boolean对象、Number对象、Array对象、String对象、Date对象、RegExp对象
6 、javascript中常用的取值赋值方法,对于单选按钮,复选框等的取值赋值等方法。(百度即可,javascript常用基础)
8 、获取单选按钮的值,获取复选框的值,获取下拉列表的值,后去复选框的值,获取单选按钮组的值,文本框、文本域赋值。
盒子模型由元素内容(content)、内边距(padding)、边框(border)和外边距(margin)几个要素组成。