随笔分类 -  JAVA

null也可以调用方法?????
摘要:我们经常会在程序中遇到空指针异常,但是我们今天就来看看,我们也可以使用null来调用一个方法。但是他并不会报空指针异常,这个是什么原因呢???我们先来看一段代码吧!!!package test54; public class Null { /** * @param args */ public static void getmessage() { System.out.println("hello world"); } public static void main(String[] args) { // TODO Auto-generated method st... 阅读全文

posted @ 2012-06-27 00:07 c语言源码 阅读(357) 评论(0) 推荐(0)

惰性初始化造成的死锁问题
摘要:下面我们来看看下面这段代码,我们看看它会打印什么东西出来。package test85; /** * * @author 王新 *这个程序会发生死锁。。。。。。。。。。 *详细见 java解惑 85题 */ public class Lazy { private static boolean initialized = false; static { Thread t = new Thread(new Runnable() { public void run() { initia... 阅读全文

posted @ 2012-06-26 23:30 c语言源码 阅读(415) 评论(0) 推荐(0)

打印蛇形图案
摘要:import java.util.Scanner; public class Test { // 输出蛇形的图案。(如下所示:) // 10 11 12 1 // 9 16 13 2 // 8 15 14 3 // 7 6 5 4 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int array[][] = new int[n][n]; for(int i=0;i<... 阅读全文

posted @ 2012-06-20 23:17 c语言源码 阅读(348) 评论(0) 推荐(0)

Thread.interrupted()方法的陷阱
摘要:package test84; public class selfInterrupt { public static void main(String[] args) { Thread.currentThread().interrupt(); // 下面的判断会打印出来这样的语句 Interrupt:false // 这样的结果是不是很让人费解呢??? // // 分析其原因为: // // 因为在上面的一句代码可以中断线程,所以if判断线程是否中断就会得到的事true // 但是 Thread.interrupted()这个方法执行完后就会清除线程的中断状态, // ... 阅读全文

posted @ 2012-06-20 23:16 c语言源码 阅读(258) 评论(0) 推荐(0)

synchronouQueue 的用法
摘要:参考的地址:http://www.blogjava.net/xylz/archive/2010/07/30/327582.html这是空中网技术面试的一个题目。import java.util.concurrent.Semaphore; import java.util.concurrent.SynchronousQueue; public class synchronouQueue_Thread { public static void main(String[] args) { //定义一个Semaphore对象,他就相当于一把锁一样。 final Semaphore se... 阅读全文

posted @ 2012-06-20 23:08 c语言源码 阅读(266) 评论(0) 推荐(0)

不可思议的死循环(一)
摘要:我们一般都要在代码中都是要避免死循环的,但是今天我要让大家把下面的for循环代码变成一个死循环,这有点不可思议吧,哈哈。我们的要求死循环的代码如下:while (i <= j && j <= i && i != j) { } 我们要上面的代码变成一个死循环,感觉是不是 有点不可思议吧,我们发现要想i<=j&&j<=i这个就只有i=j了吧?但是后面又有一个条件就是i!=j,这顿时给我们当头一棒,我们还有什么办法来让这个变成一个死循环吗?问题既然能够被提出来我们就可以找到解决问题的办法。我们知道即使生成两个相同的对象,他们进行 阅读全文

posted @ 2012-06-19 00:16 c语言源码 阅读(2344) 评论(0) 推荐(0)

加1的陷阱
摘要:我们经常在使用for循环的时候有死循环的情况,但是我们这次的这个陷阱很浅,但是很容易掉进去。下面我们就开看看我们的陷阱吧。在使用Integer的时候,经常会使用到他的最大值,我们循环到最大值的时候停止循环,但是因为这一点让我们掉进陷阱的,这个陷阱就是当一个变量i为Integer.MAX_VALUE;当我们们在给它进行加1操作的时候,我们会发现它的值立马回变为Integer.MIN_VALUE;我们来看看下面的代码就知道了。public class Test { public static int END = Integer.MAX_VALUE; /* public static... 阅读全文

posted @ 2012-06-18 23:28 c语言源码 阅读(224) 评论(0) 推荐(0)

java URL愚弄
摘要:当我们在写代码的时候,我们的代码中多一行无用的代码,会对我们程序产生什么影响呢?下面的这句多余代码就不会对我们的程序产生任何影响。请看下面的代码就知道了。public class test { public static void main(String[] args) { System.out.println("iexplore:"); http: //www.baidu.com; System.out.println(":maximze"); //这个编译是没有任何问题的,因为他把http:当做是一个语句的标号,这在java中是可以的, //后面的/ 阅读全文

posted @ 2012-06-10 23:35 c语言源码 阅读(153) 评论(0) 推荐(0)

StringBuffer的使用陷阱
摘要:我们知道StingBuffer可以构建一个字符串,比如说,我们这样来构建一个字符串,StringBuffer buffer = new StringBuffer(" M "); 这个显然定义了一个StringBuffer的对象,并其初始值为“ M ” ,但是我们来看看下面我们写的这个语句 StringBuffer buffer = new StringBuffer(' M ');注意:这个括号里面的是单引号。那么它得到结果有什么变化吗?当然有啦。我们可以输出buffer看看,我们输出的结果为空。这怎么可能呢???不是里面有一个字符吗?但是程序不会骗人的。我们 阅读全文

posted @ 2012-06-10 23:16 c语言源码 阅读(1087) 评论(0) 推荐(0)

java书写规范问题,for、while、do while{}后面不能直接定义变量或生成对象(在没有大括号的情况下)
摘要:public class createTest { public static void main(String[] args) { // TODO Auto-generated method stub // // for(int i=0;i<100;i++) // create c = new create(); // 这样写是不对的,编译是不会通过的, // 因为:JAVA语言规范规定不允许一个本地变量声明语句作为一条语句在for 、while 、do while 循环中重复执行 // 一个本地变量声明作为一条语句只能直接出现在一个语句块中(一个语句块是由一对花括号以及包含在这对花括 阅读全文

posted @ 2012-06-10 22:55 c语言源码 阅读(651) 评论(0) 推荐(0)

Math.abs()不能办到的事
摘要:Math.abs( T a) 是对数据进行求绝对值的,但是在下面的测试上就不能够完美的表现出他的功能。对于Integer.MIN_VALUE和Long.MIN_VALUE来说,Math.abs()对他们不起作用。返回的还是原来的值。public class absTest { public static void main(String[] args) { int min = Integer.MIN_VALUE; System.out.println(min); // 输出-2147483648 min = Math.abs(min); System.out.println(... 阅读全文

posted @ 2012-06-10 22:50 c语言源码 阅读(318) 评论(0) 推荐(0)

java static 标示,以及static赋初值的问题。
摘要:一:我们知道static是在类加载的时候就加载的,我们今天主要来讲一个static赋初值与不赋初值的问题。也就是:private static int sum;//(1) private static int sum= 0; //(2) 我们知道在java中如果没有给整形变量赋初值,他的默认值为0。当我们在前面给sum已经赋值的情况下,比如我们给sum赋值为10,即 sum = 10,然后我们在执行上面的(1)语句,我们再来看看我们sum的值,我们发现sum的值任然为10,没有被(1)中的语句赋值为0,因为在前面sum已经包含了正确的缓存值,也就是被赋予了10。我们执行上面(2)中的代码,我们 阅读全文

posted @ 2012-06-10 22:45 c语言源码 阅读(446) 评论(0) 推荐(0)

菜鸟进阶必杀技(Ⅱ)——java基础知识自测篇
摘要:经过了上一篇的讲解,看看下面这些题你能做对多少问题一//下面这段代码的输出结果是什么? public class Test1 { public static void changeStr(String str) { str = "welcome"; } public static void main(String[] args) { String str = "1234"; changeStr(str); System.out.println(str); } }问题二public class Test { private int i=getValue() 阅读全文

posted @ 2012-06-02 01:19 c语言源码 阅读(185) 评论(0) 推荐(0)

菜鸟进阶必杀技(Ⅰ)——java基础知识解析篇
摘要:开篇语:这篇文章是java面试那件小事 系列文章的第一篇。该系列的文章将所有的读者都想象成是一个初学者,由浅入深的引入java相关的一些问题。这些问题都是sandeziVIP和朋友一起整理,或在群里或在论坛或查阅网络收集的一些出现频率较高且重要,当然也是必须要掌握的内容。如果你认为i你已经超出初学者了,却不是很懂每篇文章开头引入的几个问题,请把自己重归到初学者的行列。java基础知识篇将涉及到 面向对象基本,操作符,控制执行流程以及初始化相关的内容。问题:面向对象的特征有哪些方面?Integer与int的区别?short num = 1;num = num+1;有什么错?short num = 阅读全文

posted @ 2012-06-01 00:15 c语言源码 阅读(200) 评论(0) 推荐(0)

从java equals和==说起
摘要:程序运行时,对象时怎么进行放置安排的?特别内存是怎么分配的?对于这方面的了解对我们理解程序的运行有很大的帮助。有五个地方可以存储数据:1》存储器。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器根据需求进行分配。2》堆栈。堆栈简称栈(stack),位于通用RAM,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方式,仅次于寄存器。java的对象引用就存储于堆栈中。3》堆(heap)。一种通用的内存池(也存在于RMA中),用于存放java对象。堆不同于栈的好 阅读全文

posted @ 2012-05-28 23:44 c语言源码 阅读(308) 评论(0) 推荐(0)

java反射知多少
摘要:这两天有细看java反射机制的东西,本来想要写篇笔记的,但在iteye上看到了这篇文章,有种“既生瑜,何生亮”的感觉。本着好东西共享的原则,贴出链接,供有需要的朋友学习。如果有深入研究反射机制的希望可以回复指出,以期好好学习,天天向上!原文链接:http://www.iteye.com/topic/1123081 阅读全文

posted @ 2012-05-26 00:38 c语言源码 阅读(140) 评论(0) 推荐(0)

关于java方法的重载(Overloading),覆写(Override)以及final 方法的几点说明
摘要:昨天在一个群里面一个群友问道final 方法可不可以重载,我不假思索的说final 方法不能继承不能重载。后来晚上睡不着觉想想总觉得不对头,翻翻书一看自己简直就是胡说八道,才意识到这些基础概念的东西时间久了不深究很容易模糊变得模棱两可,尤其对于自己这种学东西不求甚解的人来说更是家常便饭。带着昨天血淋淋的教训,决定重头来过,今天这篇小笔记就算是一个开始吧! 一.重载 java的方法重载,就是在类中可以创建多个方法,它们具有相同的方法名,但具有不同的参数类型列表。java方法重载的典型应用就是java构造器的使用,方法重载也是java多态性的重要表现。 下面的例子援引《... 阅读全文

posted @ 2012-05-19 03:45 c语言源码 阅读(262) 评论(0) 推荐(0)

东软2012实习生招聘
摘要:题目:任意一个数n的3次方都可以用n个连续的奇数相加得到.例如:1^3 = 12^3 = 3 + 5;3^3 = 7 + 9 +11;等.....java代码:import java.util.Scanner; public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num =sc.nextInt(); /* int arr[] = slove(num); for(int i=0;i<num;i++) Sys... 阅读全文

posted @ 2012-04-23 16:51 c语言源码 阅读(152) 评论(0) 推荐(0)

JVM 详谈
摘要:本来这次应该讲讲ORM的几个框架,但是笔者还没有完全总结出来,所以这里先插入一次学习JVM的心得。作为一个Java程序员,如果不了解JVM的工作原理,就很难从底层去把握Java语言和Java程序的运作机制。这里先推荐一个最权威的讲解JVM的文档,大家只要查过Java API的可以在里面的一个叫“API, Language, and Virtual Machine Document”的标题下看到四个子标题,第一个是我们最熟悉的Java API Specification,很少会有人注意到第三和第四个子标题,分别是“The Java Language Specification”和“The Jav 阅读全文

posted @ 2012-04-14 00:37 c语言源码 阅读(2612) 评论(0) 推荐(0)

Java JVM的优化
摘要:1.Heap设定与垃圾回收JavaHeap分为3个区,Young,Old和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不讨论该区。JVM的Heap分配可以使用-X参数设定,-Xms初始Heap大小-Xmxjavaheap最大值-Xmnyounggeneration的heap大小JVM 有2个GC线程。第一个线程负责回收Heap的Young区。第二个线程在Heap不足时,遍历Heap,将Young区升级为Older区。 Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程 阅读全文

posted @ 2012-04-14 00:04 c语言源码 阅读(1274) 评论(0) 推荐(0)

导航