JavaSE
阿文施瓦辛格
这个作者很懒,什么都没留下…
展开
-
文件流close的小问题
import java.io.*;public class TestFileReader{ public static void main(String[] args){ FileWriter fw1 = null; FileWriter fw2 = null; FileReader fr = null; try{原创 2015-05-06 18:34:42 · 673 阅读 · 0 评论 -
JVM类加载过程
看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。public class SSClass{ static { System.out.println("SSClass"); }...转载 2018-03-30 14:46:14 · 291 阅读 · 0 评论 -
测试for,foreach和Iterator遍历效率
今天突然间想起来之前看过一篇博客,说起了for和foreach遍历效率的区别,于是验证一番,得到如下结论。对于数组而言,for和foreach遍历效率相差不大。对于List而言,foreach和Iterator遍历效率相差不大(在我的机器上,测试用例用时几乎都在20000000纳秒以上),但是for比它们快了不止一个数量级(2000000纳秒以下)。 当然,foreach和Iterator只原创 2016-04-22 21:14:48 · 6792 阅读 · 0 评论 -
深入理解抽象类和接口
今天有位同学问了一个问题:接口里面的方法为什么不能同时声明为abstract和static? 这之前我又思考过这个问题,但没太在意,今天再看,觉得有必要记录一下。首先,什么抽象类? 《Java编程思想》中是这么定义的:包含抽象方法的类叫做抽象类。当然,一个抽象类中可以完全没有抽象方法,但是,这样的话,就没有必要把它声明为抽象类了。什么是接口? 接口其实是一个更加抽象的抽象类,接口里面的所原创 2016-08-05 22:04:57 · 644 阅读 · 0 评论 -
普通内部类和静态内部类总结
普通内部类可以访问其外部类的各种类型成员,但是静态内部类只能访问静态成员普通内部类里面不能定义各种静态的成员(包括静态变量、静态方法、静态代码块和静态内部类),而静态内部类中则可以; 静态变量和静态方法会出现这个语法错误(static methods can only be declared in a static or top level type)意思就是static方法只能在静态或者顶级类原创 2016-07-28 11:21:48 · 5890 阅读 · 0 评论 -
【转载】关于Java堆和栈的解释
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 ...转载 2015-05-06 18:34:25 · 440 阅读 · 0 评论 -
以图片为背景在其上添加组件不被覆盖
import java.awt.*;import javax.swing.*;public class Why extends JFrame{String str = "E:\\图片\\ps\\bg3.jpg";MyPanel mp1 = new MyPanel();JLabel jl1 = new JLabel("hello");JLabel jl2 = new原创 2015-06-09 21:35:29 · 3348 阅读 · 0 评论 -
多线程Thread和Runnable
在Java实现多线程的程序中,虽然Thread类实现了Runnable接口,但是操作线程的主要方法并不在Runnable接口中,而是在其子类Thread中,比如start()这个方法就只能通过Thread实例化才能使用,用Runnable的话则会出错正如以下这个程序:class MyThread implements Runnable{private int ticket = 5;public v原创 2014-10-16 19:02:32 · 469 阅读 · 0 评论 -
生产者与消费者
meal不空,获取chef的锁,当chef生产完成之后,waitperson取出meal并将meal设为空,然后提醒chef开始生产原创 2015-05-06 18:34:49 · 377 阅读 · 0 评论 -
关于线程死锁
在了解死锁之前,必须回顾一下静态变量的概念:static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。死锁:两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。(百度上面笼统的说法)原创 2015-05-06 18:34:46 · 458 阅读 · 0 评论 -
线程的休眠和强制运行
class MyThread implements Runnable{public void run(){ for(int i=0; i{try{Thread.sleep(500);}catch (Exception e){}System.out.println(Thread.currentThread().getName() + "...p原创 2014-10-16 19:48:40 · 483 阅读 · 0 评论 -
泛型小错误
class Info{private T var;public Info(T var){this.setVar(var);}public void setVar(T var){this.var = var;}public T getVar(){return this.var;}}class Da{private S vars;原创 2014-10-20 20:53:16 · 311 阅读 · 0 评论