有关于并发中的死锁(Deadlock)、饥饿(Starvation)、活锁(Livelock)
摘要:最近在看《实战Java高并发程序设计》,发现了之前没有接触过的几个名词。 死锁:之前在接触多线程的时候,接触过死锁的情况。死锁是线程中最糟糕的情况,如下面的图中的四辆车子一样,如果没有一辆车主动出来。那么这种状态永远会这样维持下去 饥饿(Starvation):饥饿是指某一线程或多个线程在某种情况下
阅读全文
eclipse查看class文件的源码
摘要:eclipse查看class文件的源码: 1、网上下载jadClipse的jar包和执行文件jad.exe和 net.sf.jadclipse_3.3.0.jar。 2、把上面下载的jar包放在ecplise中的plugins文件夹下 3、windows >preferences-->java-->
阅读全文
集合的小技巧
摘要:需要唯一吗? 需要:Set 需要制定顺序吗? 需要:TreeSet 不需要:HashSet 但是想要一个和存储一致的顺序(有序):LinkedHashSet 不需要:List 需要频繁的增删吗? 需要:LinkedList 不需要:ArrayList List |--ArrayList |--Lin
阅读全文
泛型的上限和下限的Demo
摘要:Main Class People class Human class Worker class Student class
阅读全文
线程中常用的方法
摘要:Thread.interrupt():将线程从冻结状态强制恢复到运行状态中来,让线程具备CPU的执行资格。当时执行这个强制动作会发生InterruptException,记得要处理这个异常。 Thread.setPriortity(param):设置优先级,就是线程被执行的概率,param越大,执行
阅读全文
线程死锁情况和while在线程的作用
摘要:死锁发生的情况:上述代码中,把标色的this.notifyAll();改为this.notify();就会发生线程的死锁,为什么呢?应为代码中总共有4个线程,生产者1和生产者2,消费者1和消费者2。理想状态是生产者1和生产者2执行生产操作,消费者1和消费者2执行消费操作,生产一个,消费一个。现在线程
阅读全文
一道关于类加载顺序的面试题
摘要:这是我在网上无意间翻到的一道面试题,很有意思。最后输出的结果是11 为啥最后输出的是11呢 a, 首先装载这个类,然后在链接的准备阶段(链接包括验证、准备、引用三个阶段),为所有类(静态)变量分配内存,设为为默认值(Test tester = null; int count1 = 0; int co
阅读全文
静态代理、JDK动态代理和CGLib动态代理之前的区别
摘要:昨天看了一天的代理方面的知识,刚开始看的时候没看出什么花头来,感觉不实用。一大堆的东西,还不如直接new出来,然后调用方法。后来仔细研究了一下AOP(面向切面)的思想,才发现代理的用处实在太大了。现在很多框架包括Spring等,都用到了代理这方面的知识,什么是代理?引用网上的例子,就是一个人去买房子
阅读全文
有关于tomcat启动时,利用listener来执行某个方法
摘要:今天,项目经理让我调查一下(目的是锻炼我),刚开始的时候说用listener来实现服务器启动然后某个项目跟着启动。其实就是tomcat启动的时候去执行某个方法,通过这个方法启动某个项目。我网上调查了一下, 很容易就实现了。代码如下 首先在web.xml中配置监听,如图所示 然后在 contextIn
阅读全文
有关于注解
摘要:JDK1.5 之后的系统中,内建了3个注解(Annotation) 1、@Override:表示覆写操作,这个注解在子类重写父类的方法的时候可以用到,也就是重写。在我现阶段的开发中这个注解是用的次数最多的; 2、@Deprecated:注解表示不建议使用的操作。这个注解写上去以后,是为了告诉调用这个
阅读全文
java 代码块,静态代码块,构造器等的执行顺序
摘要:写了一段测试代码,如下: public class ExecutionSequence extends fatherClass{ static{ System.out.println("子类静态代码块"); } { System.out.println("子类代码块"); } public Exec
阅读全文
java线程的初步了解
摘要:java中的线程有两种创建方式,继承Thread或者是实现Runnable接口。简单的代码如下: public class ThreadDemo01 extends Thread{ int count = 1; int number; public ThreadDemo01(int num){ nu
阅读全文
java容器的理解(collection)
摘要:容器类(Conllection)对于一个开发者来说是最强大的工具之一,可以大幅提高编程能力。容器是一个将多个元素组合到一个单元的对象,是代表一组对象的对象,容器中的对象成为它的元素。 容器适用于处理各种类型的对象的聚集,例如存储、获取、操纵聚合数据,以及聚合数据的通信。容器只保存Object的引用,
阅读全文
java的特点
摘要:java是一种跨平台、适合于分布式计算机环境的面向对象编程语言。具有以下特性:简单性、面向对象、分布性、解释性、可靠、安全、平台无关、可移植性、高性能、多线程、动态性等特点。 面向过程和面向对象可以用以下两种公式表示: 面向过程:程序=算法+数据 面向对象:程序=对象+属性 所有面向对象语言都有以下
阅读全文
java 运算符
摘要:public class Demo02 { public static void main(String[] args) { int i1 = 128; int i2 = 129; System.out.println(Integer.toBinaryString(i1)); System.out.
阅读全文
私有化构造方法
摘要:看到网上一道题目,私有化构造方法后,该类能不能被实例化。答案比较尴尬,直接实例化肯定是不行了,因为构造方法被私有化了,也就意味着在别的类中不能直接实例化该对象了, 难道真的没办法了吗?网上查询了一下资料,恍然大悟,有一种东西叫做静态方法,不需要实例化直接调用。具体实现如下: public class
阅读全文
JSP和Servlet的区别
摘要:JSP本质上来说就是Servlet,JVM在编译的时候最终会把JSP编译成Servlet。言而总之,JSP能做的事情,Servlet都能做。 区别的话, MVC模型就是将数据、逻辑处理、用户界面分离的一种方法。 M(Model, 模型):用于数据处理、逻辑处理。 V(View,视图):用于显示用户界
阅读全文
stringBuffer和stringBulider的区别
摘要:今天去面试了,问了最基础的stringBuffer和stringBulider的区别,我没有回答出来。之前就知道自己的基础很差,没想到这么差。 网上看了一下资料,stringBuffer和stringBulider的基本用法都差不多,包括append,insert等等。但是stringBuffer的
阅读全文
java的内存机制
摘要:我个人感觉还是先得去学习一下java的内存机制。我现在脑子中的概念就是 堆内存和栈内存 说实话Java的内存机构感觉好复杂,什么JVM直接操作,什么线程,什么帧的....,我粗略的查询了一些资料,现在我对栈内存的理解就可以理解成 家 和 旅馆,堆内存就是家,栈内存就是旅馆。首先,内存是干嘛用的呢 这
阅读全文
记录一些开发中遇到的问题
摘要:1、java内存溢出? 2、hashcode的定义和作用? 3、for和foreach的区别?
阅读全文