自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 线程池

线程池是为了避免每次创建线程和销毁线程所带来的性能问题,原理和连接池差不多,在线程池的编程模型下,任务的提交是交给线程池的,而不是直接交给某个线程,线程池拿到某个任务后,它就在线程池内部查找有没有空余的线程,再把任务交给内部某个空余的线程,这就是封装,记住,任务是交给线程池,一个线程同时只能执行一个任务,但可以同时向线程池中提交多个任务。package Thread02;import j...

2017-03-31 21:50:40 433

原创 多线程访问共享对象和数据的方式

如果每个线程执行相同的代码,比如售票案例,则可以使用一个Runnable对象,这个Runnable对象中有那个共享数据。package Thread02;public class MultiThreadShareData { static ShareData1 data1=new ShareData1(); public static void main(String[] args

2017-03-31 20:51:03 400

原创 ThreadLocal

ThreadLocal用于实现线程内数据的共享,即对于相同的代码程序,多个模块在同一个线程中运行时共享一份数据,而在另外线程中运行时又共享另外一份数据 每个线程调用全局ThreadLocal对象的set方法,就相当于往其内部的map中增加一条记录,key分别是各自的线程,value为各自的set方法传进去的值,在线程结束是可以调用ThreadLocal.clear()方法,这样会释放内存,不调用也

2017-03-31 10:43:54 433

原创 内部类

1、为什么java的非静态内部类中不能有static属性,却能有static final属性?package Thread01;public class Test01 { public class Inner{ //static int a=1; final static int b=1; }}java类加载顺序,首先加载类,执行static变量

2017-03-30 16:31:37 433

原创 定时器的使用

package Thread01;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TraditionTimerTask { public static void main(String[] args) { new Timer().schedule(

2017-03-30 13:02:28 367

原创 多线程和多任务

1、多任务 在计算中,多任务是一种多个任务(也称之为进程)共享处理资源(如CPU)的方法。在多任务操作系统上,例如Windows XP,您可以同时运行多个应用程序(下载电影,玩游戏)。多任务实质是指操作系统在每个计算任务间快速切换,以致于看上去不同的应用似乎在同时执行多项操作。当CPU时钟频率稳步提高时,不仅应用程序的运行速率可以更快,而且操作系统在应用间的切换速率也更快。这样就提供了更好

2017-03-29 10:31:24 1838

转载 Java并发编程:volatile关键字解析

参考链接

2017-03-17 16:28:13 304

原创 String类型编译器优化

package test01;public class test02 { private static final String MESSAGE="taobao"; public static void main(String[] args) { String a="tao"+"bao"; String b="tao"; String

2017-03-17 09:34:51 1105

原创 List Queue Map Stack的遍历

package Test01;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ListDemo01 { public static void main(String[] args) { List<String>list=new ArrayList

2017-03-05 20:15:07 430

原创 i=i++问题

看下面一道面试题package Test01;public class Demo02 { public static void main(String[] args) { Demo02 demo02=new Demo02(); int i=0; int j=0; demo02.show(i);//1 System

2017-03-05 16:11:59 398

原创 java数据类型的自动提升

一道面试题:package Test01;public class Demo01 { public static void main(String[] args) { byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; b6=b4+b5;//1 b3=(b1+b2);//2 S

2017-03-05 09:34:19 509

原创 Integer与int

下面是一道面试题:package Test05;public class Demo02 { public static void main(String[] args) { Integer a1=59;//1 int a2=59;//2 Integer a3=Integer.valueOf(59);//3 Integer a4=

2017-03-04 15:32:32 409

原创 抽象类和接口的区别

1、抽象类可以有构造方法,接口中不能有构造方法 2、抽象类中可以有普通成员变量,接口中没有普通成员变量 3、抽象类中可以包含非抽象的普通成员方法,接口中所有的方法必须都是抽象的,接口中不能包含非抽象的普通方法 4、抽象类中的抽象方法访问类型可以是public、protected、private,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型 5、抽

2017-03-04 09:45:05 341

原创 内部类

内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态static的,也可以是非static的,可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。那么为什么要使用内部类呢? 使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了

2017-03-03 15:56:10 342

原创 Java线程的join()方法

join()把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在主线程中调用了线程A的join()方法(A.join()),则直到线程A执行完毕后,才会继续执行线程主线程。t.join(); 等待线程 t 执行完毕,再执行调用t线程方法的线程。(大概就是这个意思) t.join(1000); 等待 t 线程,等待时间是1000毫秒。下面是join方法的源码 public

2017-03-03 12:59:55 575

原创 Java中代码块

Java中代码块主要分为四种: 在方法中出现{ }的就是普通代码块 在类中出现的{ }的就是构造代码块 使用static关键字修饰的{}是静态代码块 还有就是线程中使用的同步代码块(synchronized)普通代码块package Test03;public class Demo02 { public static void main(String[] args) {

2017-03-03 09:54:58 310

原创 多态特性

面向对象的三大特性:封装,继承,多态,其中封装和继承是多态的基础概述:某一个事物,在不同时刻表现出来的不同状态,父类的声明指向子类的实现,父类可以调用子类重写后的方法。转型操作: 向上转型:父类的声明指向子类的实现向下转型: 假如子类声明指向父类实现,这是非法的。如果将父类型声明数据赋值给子类型,不管父类真实类型是什么,都是非法的。那么应该怎么办呢?可以使用强转语法。子类类型声明 对象名 = (子

2017-03-02 20:28:03 384

原创 反射使用步骤

步骤1.获取Class对象 四种方式: 1、Class.forName(全类名) 2、类名.class 3、对象.getClass() 4、假如是包装类型,比如Integer,则可以使用Integer.Typepackage Test;public class Person {}package Test;public class Demo01 { pub...

2017-03-01 15:02:06 432

原创 类的加载

编译的时候是将.java文件编译成.class文件,程序在运行的时候,系统会把.class文件加载到内存中,当系统要使用某个类时,如果该类还没有加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 加载:就是指将.class文件读入内存,并为之创建一个Class对象,任何类被使用时,系统都会建立一个唯一的Class对象。(Class类就是描述.class文件的) 什么时候...

2017-03-01 14:37:13 455

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除