JAVA面试知识分类

最近在准备面试(吐槽下阿里 拥抱变化 拥抱你妹),复习了很多关于JAVA的知识,想写一篇博客来整理一下,如果大家想看面试题,那最好还是不要看下去了,免得浪费时间,我只是把一些JAVA面试常考的知识点,或者JAVA核心的内容罗列一下,起一个大纲,并且附上几篇优秀的文章提供参考。

(一) JAVA内存机制以及垃圾回收。

http://my.oschina.net/xiaohui249/blog/170013 这篇文章对JAVA的内存分配讲的比较详细,另外还单独讲解了String的内存分配,大家也都知道String是JAVA里比较特殊的一个类,内存分配也和普通类有一些区别。

http://www.cnblogs.com/killmyday/archive/2013/06/12/3132518.html 这篇文章讲了一些常用的垃圾回收算法

http://www.cnblogs.com/qinqinmeiren/archive/2011/07/19/2151683.html 这篇文章讲了常量池的应用

http://www.cnblogs.com/whgw/archive/2011/09/29/2194997.html 这篇文章讲了栈内存和堆内存的区别

http://www.cnblogs.com/mengdd/p/3298852.html 这篇文章讲了JAVA中的四种引用类型


(二) JAVA中的多线程和并发

这个要看的实在有点多,不过有人已经差不多整理好了哪些是重要的,大家可以自己去看。http://www.jcodecraeer.com/a/chengxusheji/java/2015/0603/2985.html


(三) JAVA中的反射

反射可以说是JAVA中比较重要也是比较特殊的一块内容了,它相比于传统的RTTI,能让JAVA变得更加灵活

http://m.blog.csdn.net/blog/leelit/45315043

http://blog.sina.com.cn/s/blog_afe2af380102uzxg.html

另外这里插一句,如果大家想做Android开发,有时间可以好好的去研究一下动态部署和插件化开发,这和反射其实有一定的关系

http://v.youku.com/v_show/id_XNTMzMjYzMzM2.html 这是阿里的一个技术沙龙视频,讲的就是他们的手淘ATLAS


(四) JAVA中的泛型

JAVA没有C++的模板,但是提供了泛型,让JAVA变得更加灵活并且减少了类型转换的错误,当然提到泛型就少不了类型擦除

http://www.importnew.com/13907.html 这篇文章讲了类型擦除中需要注意的地方

http://blog.csdn.net/caihaijiang/article/details/6403349 这篇文章讲了Code specialization和Code sharing已经泛型擦除带来的问题

http://blog.csdn.net/lonelyroamer/article/details/7868820 这篇文章讲了泛型使用时的问题还有桥方法


(五) final,finally和finalize的区别。

首先final是一个修饰符,可以用来修饰变量,方法和类。当它用来修饰变量的时候,表示这个变量是不可变的,要注意这里的不可变指的是引用不能指向其他对象,比如final int a = 10;int a = 5;就会报错,而引用指向的对象里的内容则是可以改变的,比如A a = new A();a.value = 10;a.value = 5;这是不会报错的,另外大家知道String为什么被称为不可变的吗?你看String s = "a";s = "b";明明不会报错啊,那是因为String的两个成员变量char[] array和int length都是final的,所以当s = "b"以后,JVM并不是把s的对象的内容改变了,而是重新创建了一个对象。

http://blog.csdn.net/pi9nc/article/details/12374049y

http://blog.csdn.net/carolzhang8406/article/details/6705831 这两篇文章是关于finalize的

http://www.cnblogs.com/lanxuezaipiao/p/3440471.html

http://blog.csdn.net/sureyonder/article/details/5560538 这两篇文章是关于finally的


(六) JAVA中传值和传参

套用thinking in java里的一句话,传递的是拷贝,如果是传值,那传的是值的拷贝,如果是传参,那传的是参数的拷贝。

http://blog.csdn.net/xys_777/article/details/6951434 具体参考这篇文章


(七) JAVA的类加载系统

http://my.oschina.net/u/1269532/blog/166888 这篇文章讲的是JAVA的类加载和执行机制。

http://blog.csdn.net/woshixuye/article/details/8206277

http://blog.csdn.net/zhangxinrun/article/details/6161426 这两篇文章讲的是如何自定义类加载器


上面就是我总结的一个JAVA的核心知识,当然还有其他的比如JAVA基本类型和对象的大小,JAVA容器类的知识等等,这些大家就自行百度或者谷歌吧。

java核心知识点整理 1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强型语言,即必须声明变量的型,Java中有8种型,6种数值型(4个整数型和2个浮点型)、一个字符型和一个boolean型。 想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。 4.强制型转换: int nx = (int) x; // (语法:用圆括号将目标型括起来,后面跟上要转换的变量); 5.Java不能为单独的方法,如main方法,定义局部常量,而只能为定义常量,供该的所有方法使用,所以,通常称之为常量。如: class UsersConstants{ 2public static final double g = 32; public static final double main(String[] args){ System.out.println(g); } } 注意:常量定义于main方法的外边,而且必须有关键字 static final; 6.字符串的子串: String str = hello”“; String str1 = str.substring(0,4); //输出hell 7.不要用==运算符来测试两个字符串是否相等,该运算符只能判断两个字符串是否存在同一个位置。 用equals. String str = “hello”; str.equals(”hell”); // return false; 8.对象的行为、状态、标识 9.面向过程与OOP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值