
Java基础
文章平均质量分 68
Lange0x0
记录、分享、学习技术。个人网站http://blog.lapisy.com
展开
-
Android/Java内存管理
Java内存结构Java虚拟机会将内存分为几个不同的管理区,这些区域各自有各自的用途,根据不同的特点,承担不同的任务以及在垃圾回收时运用不同的 算法 。总体分为下面几个部分:程序计数器(Program Counter Register) 、 * JVM虚拟机栈(JVM Stacks ) * 、 * 本地方法栈(Native Method Stacks) * 、 * 堆(Heap) * 、 * 方法原创 2017-03-30 14:16:54 · 480 阅读 · 0 评论 -
Java中线程的同步
1. 线程同步的条件1.1 有多个线程要访问资源1.2 访问的资源是统一份资源2. 线程同步的方法2.1 采用同步代码块的方式来实现同步,其中代码的监视器(锁)可以是任何一个对象,但是要注意的是多个线程应该共享的是同一个监视器,否则无法实现同步。class Ticket implements Runnable{ private static int ticket=100;原创 2015-05-03 17:02:53 · 527 阅读 · 0 评论 -
Java中线程通信
1. 多个线程在操作同一份资源时,其操作如果一致的,则不需要使用线程之间的通信,如多个线程卖票。如果操作不一致,则可能需要线程通信。2. java中线程之间的通信一般利用wait和notify方法来实现的2.1 wait(),wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法。当前的线程必须拥有当前对象的monitor,也即lo原创 2015-05-03 20:04:52 · 486 阅读 · 0 评论 -
Java多线程
1.进程和线程,程序的概念1.1程序:是一组指令的有序集合,没有任何运行时的意义,即是静态的。可以存储。1.2进程:他是动态的,是程序在某个数据集上的运行,是一个动态的实体,有自己的生命周期。进程是操作系统中资源分配的基本单位,有着自己的独立的内存和资源,cpu在切换进程时,有独立的地址空间,当某个进程破坏时,不影响其他的进程。耗费的时间较多,因此引入了线程。1.3线程:即是进程某原创 2015-05-03 16:30:52 · 431 阅读 · 0 评论 -
Java中单实例的设计
1. 单例模式,即是在整个程序运行过程当中一直只存在一个实例。有多种设计的方法。2. 设计的方法,比较出名的有懒汉式,饿汉式2.1 饿汉式,这种方法创建的单例是线程安全的,因为getInstance方法中只有一句话。但是这种方式的缺点是:不管程序是否使用Single对象,都会创建该对象。class Single{ private static Single single=new S原创 2015-05-03 17:16:26 · 509 阅读 · 0 评论 -
死锁和线程之间的通信
1. 死锁1.1 死锁的产生条件1.1.1 互斥条件,即一个资源被一个线程访问时,另一个线程不能去访问。1.1.2 不可抢占,即不可剥夺,资源请求者不能从占有者手中夺取资源,只能有持有者自己释放1.1.3 请求和保持,即持有者也是请求者1.1.4 循环等待,请求和持有资源形成一个环形。1.2 Java中死锁一般发生在同步嵌套中,由于相互请求彼此持有的锁而发生死锁。如:原创 2015-05-03 19:32:18 · 650 阅读 · 0 评论 -
Java中关于数组的反射
Java中关于数组的反射:1.准备知识:首先要知道数组是一种类型,根据定义当两个数组具有相同的类型和相同的维度时则这两个数组是同一种类型。int[] a=new int[3];int[] a4=new int[5];String[] a3=new String[]{"hello","jdfsa"};System.out.println(a.getClass()==a4.getClas原创 2015-05-01 11:14:55 · 486 阅读 · 0 评论 -
Java中的反射
Java中的反射:1.概念:反射原创 2015-04-30 09:37:58 · 575 阅读 · 0 评论 -
Java反射中Method的用法
当获得某个类的对应的Class对象后,就可以通过该Class对象的getMethod方法和getMethod方法获得Method对象和数组,每个Method对象对应一个方法,获得Method对象后,调用invoke方法来调用这个方法,实例如下:class Student extends Person{ private String name; private Student(){};原创 2015-05-01 18:29:49 · 2843 阅读 · 0 评论 -
Java内存管理
Java中jvm虚拟机中主要把内存划分成几个不同的数据区域,今天主要讨论三个区域,堆,栈,和方法区。堆:Java堆是Java虚拟机所管理内存最大的一块,在虚拟机启动时所创建。其主要的作用就是存放对象实例,即通过new出来的对象都存放在这个地方。同时数组也分配在堆上。堆是Java垃圾收集器管理的主要区域,有的称为GC堆。栈:栈一般是私有的,不同的对象有不同的栈内存地址。其主要的作用是原创 2015-04-29 23:49:47 · 452 阅读 · 0 评论 -
Git多用户,不同项目配置不同Git账号
最近碰到一个比较麻烦的Git的应用场景:就是一台电脑上,可能有个git工程,每个工程的地址和账号密码又是不一样的,刚开始的就是要用那个工程了,就修改下全局的user.name,user.email,但是每次都是很麻烦,甚至会push错地方。那么有没有办法可以在一台电脑上配置多个Git用户,不同的Push地址呢?经过查询和实验,发现是可以实现的。我就以Github来举例说明(服务器的地址都是gi原创 2018-01-10 23:08:19 · 28828 阅读 · 1 评论