JAVA程序员面试宝典总结-谈谈我的理解吧
2014年9月7日
今天开启阅读了这本书,中断了原计划中算法中级层次的系统性训练,我觉得先看看面试题吧。先给这本书A掉再说。
阅读了一天,大概阅读了一半,有点失望,因为这本书讲解的面试都是基础中的基础,我看着都着急,作者很难深入系统层次的去谈论技术,都是一些表面的文章。
不过我给大家整理了一些比较细节的东西。
第五章开始吧:
-----------------------------------------------------
classLoader知识。
整体调用用到的是父类委托。为什么这么用?安全性,避免重复加载。
也就是classLader在JVM启动的时候,bootstrap classlader(类加载器-加载),用户定义的classloader,
算了,我搜了一篇讲解不错的http://blog.csdn.net/changewang/article/details/6107507
--------------------
JVM中采用unicode编码存储。在对于外界的系统而言,会在读出读入的时候,inputstream等类(文件读入读出边界)的地方加上编码来转化。windows是GBK编码。
---------------------
int j=0; j=j++; //j=0。缓存中间变量 类似于 temp =j j=j+1; j=temp;
-----------------
/* * 自增运算符的优先级问题 * */ int i=0; int y=i++ +i++ +i++ +i++; System.out.println(y); // 0 +1 +2+3 =6 每进行一步+操作,然后自增++,从左到右计算,不是一次性全部出来完,然后++的,注意 i=0; y=i++ +i++ + ++i; System.out.println(y); // 先进行++i,优先级高 1 + 2 + 1=4
/* *输出的是9.0 因为三目运算被10.0的返回值定义为了double类型,所以x>5=false的时候输出9.0 */ int x=5; System.out.println("data ="+((x>5)?10.0:9));
/* * * 三目运算符返回值为常量,103是常量,而非int!!!,那么g也会被指定为常量输出 */ char g='g'; int l=103; System.out.println(false?l:g); //103 System.out.println(false?103:g); //g
/* * 基本数据类型是传值副本 * 对象类型,包括string也是,是传递引用副本 *output ab-b *看看结果就知道了 */ String a=new String("a"); StringBuffer b1 = new StringBuffer(a); StringBuffer b2 = new StringBuffer("b"); new Test().operate(b1, b2); System.out.println(b1 + "-" + b2); //b1=ab b2=b /* * && || 采用短路运算符,如果第一个表达式已经可以判断出来整个表达的话,编译器会跳过后面的表达式的。 * & | ^不仅仅是位运算符,还是布尔逻辑运算符。非短路运算符 */ int m=5,n=5; if((m==5) || (n++)==5); System.out.println("c."+n); //c.5 if((m==5) | (n++)==5); System.out.println("c."+n); //c.6 /* * int 为4个字节,32位,>>n向右移动n位。每移动一位/2操作 * 即sum>>32向右移动32,一个循环。依旧是sum=32 * */ int sum=32; System.out.println(sum>>32); System.out.println(sum>>5);//5= 1 System.out.println(sum>>6); // 6~31 =0 /* * * 记得一个微软面试题 (x-1)&x的问题 * 1.x二进制最右侧去掉1.每执行一次(x-1)&x ,可以统计1的个数 * 2.if(x-1)&x 判断是不是2的指数 * */ int t1=32; if(((t1-1)&t1)==0) System.out.println("是2的指数"); t1=32; //二进制中只有1个1 int cnt=0;//统计二进制1的个数 while(t1!=0){ t1=t1&(t1-1); cnt++; } System.out.println("二进制1的个数为"+cnt); /* * 还有一个算法常用到的奇偶判断,来快速滚动数组,从而节约空间的 * (x-1)&1 奇数=0 偶数=1 所以结果只有0,1。例子比较多。只要记住(x-1)&1可以判断奇偶,并且0,1是结果、将来有的用啦 */
好了。囧,瞌睡,我休息去、、、明天继续。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。