随笔分类 -  Java基础

摘要:1、二者的来源 sleep(),是Thread下面的静态方法/静态本地方法。 wait(),是Object()的final方法。 2、源码分析 a、sleep() 1 public static void sleep(long millis, int nanos) 2 throws... 阅读全文
posted @ 2015-07-17 20:30 平林新袖 阅读(307) 评论(0) 推荐(0)
摘要:本文转载+个人理解 一、引言 在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于 Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的... 阅读全文
posted @ 2015-07-16 21:22 平林新袖 阅读(200) 评论(0) 推荐(0)
摘要:在HotSpot虚拟机中,对象在内存中的存储布局可以分为3块区域:对象头部、实例数据、对齐填充。 一、对象头部Header的布局Mark WordClass 指针 在32位系统下,上面两部分各占4B; 在64位系统中,Mark Work占4B,class指针在开启指针压缩的时候占4B;为开... 阅读全文
posted @ 2015-07-13 11:24 平林新袖 阅读(1197) 评论(1) 推荐(0)
摘要:finally 子句(clause)是不是总会执行???package com.volshell.test;public class Main { public static void main(String[] args) { change1(10); } priv... 阅读全文
posted @ 2015-07-12 21:44 平林新袖 阅读(360) 评论(0) 推荐(0)
摘要:【参阅http://blog.csdn.net/justinavril/article/details/2873664】Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性。例如,使用它能获得 Java 类中... 阅读全文
posted @ 2014-08-26 11:34 平林新袖 阅读(166) 评论(0) 推荐(0)
摘要:0 引言 从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增加一个版本号,就有一种新增的方法,这也增加了选择的种类,可以依据不同的要求来进行选择。下面来看一下,... 阅读全文
posted @ 2014-08-26 08:49 平林新袖 阅读(397) 评论(0) 推荐(0)
摘要:http://my.oschina.net/sel/blog/215959 阅读全文
posted @ 2014-05-20 14:05 平林新袖 阅读(148) 评论(0) 推荐(0)
摘要:一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可... 阅读全文
posted @ 2014-05-07 08:47 平林新袖 阅读(240) 评论(0) 推荐(0)
摘要:对于java程序员来说,并不必显示地对内存进行管理,一切都交给java虚拟机去做吧,而且,你也不一定做得比java虚拟机来得专业。好像所有内存管理都交给虚拟机去做就万事大吉了,但是,事实有时并非如此,可能有时你会遇到一些让你困惑的问题,如OutOfMemoryError异常,如stackOver... 阅读全文
posted @ 2014-05-06 23:04 平林新袖 阅读(716) 评论(0) 推荐(0)
摘要:对象流ObjectInputStream ObjectOutputStream类分别是InputStream和OutputStream的子类,对象输出流使用writeObject(Object obj)方法,将一个对象obj写入到一个文件,使用readObject()读取一个对象。构造方法:Obje... 阅读全文
posted @ 2014-04-17 17:14 平林新袖 阅读(4003) 评论(0) 推荐(0)
摘要:Java中文件流类的继承关系: 【字节流】 【字符流】 从上面的继承关系可以看出,FileWriter类不是直接继承了Writer类,而是继承自Writer的子类(、OutputStreamWriter)这是一个实现字节流到字符流的转换。也就是说,实际上,从文件中读取的还是字节,只... 阅读全文
posted @ 2014-04-17 15:41 平林新袖 阅读(793) 评论(2) 推荐(1)
摘要:package project;public class Main implements Runnable{ static Object s1 = new Object(),s2 = new Object(); public void run(){ if(Thread.currentThread().getName().equals("t1")){ synchronized (s1) { System.out.println("th1 locked s1"); try { ... 阅读全文
posted @ 2014-04-12 22:20 平林新袖 阅读(329) 评论(0) 推荐(0)
摘要:一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 final不能用于修饰构造方法。 注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。1、final类 final类不能被继承,因此final类的成员方法没有 阅读全文
posted @ 2014-03-31 12:05 平林新袖 阅读(283) 评论(0) 推荐(0)
摘要:学一些东西应该,学以致用:现在我开始使用流的办法从控制台读取数据import java.io.*;public class Demo2{ public static void main(String[] args) throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String string = in.readLine(); double n = Double.parseDouble(string); ... 阅读全文
posted @ 2013-11-09 15:35 平林新袖 阅读(607) 评论(0) 推荐(0)
摘要:1 package Test; 2 3 public class Demo9 { 4 public static void main(String[] args) { 5 TestSync2 tt = new TestSync2(); 6 7 // 8 new Thread(tt).start(); 9 new Thread(tt).start();10 new Thread(tt).start();11 new Thread(tt).start();12 }13 14 }15 class TestSync2 impleme... 阅读全文
posted @ 2013-10-20 14:01 平林新袖 阅读(307) 评论(0) 推荐(0)
摘要:线程实行顺序问题,求教 阅读全文
posted @ 2013-10-15 09:42 平林新袖 阅读(1158) 评论(3) 推荐(0)
摘要:1 package MyTest; 2 3 class TestDemo implements Runnable { 4 5 public void run() { 6 int i = 0; 7 for (int j = 0; j " 9 + i++);10 }11 }12 }13 14 public class Demo1 {15 public static void main(String[] args) {16 TestDemo testDemo = n... 阅读全文
posted @ 2013-10-15 09:11 平林新袖 阅读(597) 评论(0) 推荐(0)
摘要:前台程序是相对于后台程序来说的,那么什么是后台程序呢? 【后台程序】就是在启动了start()之前,调用了setDaemon(true)方法,这个线程就变成了后台。如果一个进程中只用后台线程在运行,那么整个进程就会结束。package Test;class CTest implements Runnable { public void run() { while(true) System.out.println(Thread.currentThread().getName()+" is running."); }}public class De... 阅读全文
posted @ 2013-10-15 07:16 平林新袖 阅读(178) 评论(0) 推荐(0)
摘要:1、新建状态 Thread t1 = new Thread(); 创建之后,就已经有了相应的内存和其他资源,但是还是处于不可运行状态。2、就绪状态 当一个线程使用.start()启动之后就处于就绪状态,就会在队列中排队等待被调度。此时已经具备运行状态。3、运行状态 当一个就绪状态的线程被调度而且分配了CPU资源,就进入了运行状态。此时就会自动调用run()。4、阻塞状态 当一个对象调用了wait() suspend() sleep()方法,线程就会进入阻塞状态。阻塞时,是不进行排队的,直到导致产生阻塞的因素被消除之后,才会进行在队列中排队(就绪状态)。5、死亡状态 当一个线程对象调用... 阅读全文
posted @ 2013-10-14 21:34 平林新袖 阅读(200) 评论(0) 推荐(1)
摘要:【通过继承Thread】 一个Thread对象只能创建一个线程,即使它调用多次的.start()也会只运行一个的线程。 【看下面的代码 & 输出结果】 1 package Test; 2 3 class CTest extends Thread { 4 private int tickte = 20; 5 6 public void run() { 7 while (true) { 8 if (tickte > 0) { 9 System.out.println(Thread.currentThre... 阅读全文
posted @ 2013-10-14 21:18 平林新袖 阅读(11994) 评论(0) 推荐(1)