
java
u013344815
这个作者很懒,什么都没留下…
展开
-
Java内存回收机制(第一讲)
预备知识:栈内存和堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数原创 2015-11-06 22:15:55 · 406 阅读 · 0 评论 -
约瑟夫环问题求解--程序+详细注解
约瑟夫环问题起源于一个犹太故事。约瑟夫环问题的大意如下罗马人攻占了桥塔帕特,41个人藏在一个山洞中躲过了这场浩劫。这41个人中,包括历史学家约瑟夫和他的一个朋友。剩余的39个人为了表示不向罗马人屈服,决定集体自杀。大家决定了一个自杀方案,所有这41个人围成一个圆圈,由第1个人开始顺时针报数,每报数为3的人就立刻自杀,然后再由下一个人继续报数,仍然是每报数为3的人就立刻自杀……,直到所有人都自杀原创 2015-12-08 16:52:58 · 9308 阅读 · 2 评论 -
Java 多态性解析
Java引用变量有两个类型:一个是编译时类型,一个是编译时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现所谓的多态。package 多态;class PClass{ public int age=40; public void test(){ System.out.println("这是父类的test原创 2015-11-25 17:54:36 · 375 阅读 · 0 评论 -
Java 内部类的使用
内部类的主要作用如下1.内部类提供了良好的封装,可以把内部类隐藏在外部类之内,不允许同一个包内的其他类访问。2.内部类成员可以直接访问外部类的私有数据。3.匿名内部类适合用于创建那些仅需要一次使用的类。内部类与外部类的两点区别1.内部类比外部类可以多三个修饰符:private、protected、static——外部类不可以使用这三个修饰符2,.非静态内部类不能拥有静态成员原创 2015-11-26 14:07:12 · 347 阅读 · 0 评论 -
Java泛型结合实例详解
浏览过一些介绍泛型的博客,感觉一些学术定义的陈列还是比较晦涩难懂,在这里我以一个打印学生年龄的例子来介绍一下自己对泛型的理解。package 泛型;public class GenericDemo {public static void main(String[] args) { Children<Integer> c1=new Children<Integer>("小白",20);原创 2015-10-15 21:15:35 · 650 阅读 · 0 评论 -
JVM内存分配
其中:1,程序计数器(Program Counter Register):程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,可以理解为是当前线程的行号指示器。字节码解释器在工作时,会通过改变这个计数器的值来取下一条语句指令。 每个程序计数器只用来记录一个线程的行号,所以它是线程私有(一个线程就有一个程序计数器)的。 如果程序执行的是一个Java方法原创 2015-11-12 21:08:52 · 321 阅读 · 0 评论 -
Java内存回收机制(第五讲)
常见的垃圾回收器1.串行回收器(Serial Collection)串行回收器通过运行Java程序时使用-XX+UseSerialGC附加选项启用。串行回收器对Young代和Old代的回收都是串行的(只使用一个CPU),而且垃圾回收执行期间会使得应用程序暂停,具体策略为:Young代采用串行复制算法,Old代采用串行标记压缩算法。上图为Young代的串行回收及回收完成后的示原创 2015-11-12 19:22:50 · 417 阅读 · 0 评论 -
Java多线程涉及到的方法浅析
在谈多线程中方法的问题之前,我想先说一下”锁“的概念。 为了解决线程不同步问题(也就是线程执行顺序不可控),Java为用户提供了”锁“的机制来实现线程的同步,锁的机制要求每个线程在进入共享代码前都要取得锁,否则不能进入,而退出共享代码之前则释放该锁。 1.sleep() 该方法在指定时间内让正在执行的线程暂停执行,但不会释放”锁“标志,使当前进程进入阻塞状态(也就是进入上图的Blocked原创 2015-10-12 15:42:18 · 726 阅读 · 1 评论 -
线程同步(synchronized关键字)
概念解决数据共享问题,必须使用同步,所谓同步就是指多个线程在同一时间段内只能有一个线程执行代码,其他线程要等待此线程完成之后才可以继续执行。方法线程进行同步,有以下两种方法: (1)同步代码块 synchronized(要同步的对象){ 要同步的操作; } (2)同步方法 public synchronized void method(){ 要同步的操作; } 同步代码块示例:pa原创 2015-10-24 16:57:28 · 594 阅读 · 0 评论 -
Java内存回收机制(第四讲)
堆内存的分代回收现行的垃圾回收器用分代的方式来采用不同的回收设计。分代的基本思路是根据对象生存时间的长短,把堆内存分成三代:>>Young(新生代)>>OLd(老年代)>>Permanent(永生代)中文命名有点别扭,尽量采用英文名称采用分代回收策略基于如下两点事实>>绝大多数的对象不会被长时间引用,这些对象在其Young代就会被回收。>>很老的对象(生存时间很长)原创 2015-11-09 18:59:30 · 409 阅读 · 0 评论 -
通过反射了解泛型的本质
通过Class,Method来认识泛型的本质 我们知道Java中集合的泛型是防止错误输入的,例如ArrayList<String>list1=new ArrayList<String>();接下来如果再有list1.add(20);系统便提示错误,程序无法通过编译,以为list1的类型已被指定为String,那么我们看以下代码Class c1=list.getClass();Class c2=l原创 2015-10-24 11:31:47 · 817 阅读 · 0 评论 -
反射——Java高级开发必备知识
1.什么是反射 我们知道,通过类可以创建对象,那么创建好的对象可不可以再获取类的信息呢,就好比父亲创造了儿子,那么能否通过儿子得到父亲的信息并利用父亲的信息呢,在Java中是可以的。 由此可知反射所具有的功能是利用类的对象来调用类的方法、属性等信息。2.Class类自然界中万物皆对象。 类也是对象,是Class类的实例对象,这个对象我们称为该类的类型。 Class类是一切反射的根源。 。。原创 2015-10-21 09:55:20 · 462 阅读 · 0 评论 -
Java内存回收机制(第三讲)
垃圾回收机制概述垃圾回收机制主要完成下面两件事情:>>跟踪并监控每个Java对象,当某个对象处于不可达状态时,回收该对象所占有的内存>>清理内存分配、回收过程中产生的内存碎片垃圾回收的基本算法对于一个垃圾回收器的设计算法来说,大致有如下可供选择的设计串行回收(Serial)和并行回收(Parallel)串行回收就是不管系统有多少个CPU,始终只有一个CPU来执行垃圾回收原创 2015-11-08 17:46:44 · 417 阅读 · 0 评论 -
Java内存回收机制(第二讲)
系统对对象的引用方式对垃圾回收机制来说,判断一个对象是否可回收的标准就在于该对象是否被引用,因此饮用也是JVM进行内存管理的一个重要概念。为了更好的管理对象的引用,从JDK1.2开始,Java在java.lang.ref包下提供了三个类:SoftReference、PhantomReference和WeakReference,它们分别代表了系统对对象的三种引用方式:软引用、虚引用和弱引用。归纳原创 2015-11-07 13:39:59 · 423 阅读 · 0 评论 -
java数据类型转换汇总
Java的数据类型的转换一般分为三种,分别是:简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。原创 2016-09-01 17:51:27 · 442 阅读 · 0 评论