Java基础
hqdoremi
这个作者很懒,什么都没留下…
展开
-
Java内存分配
栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识。Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆转载 2013-03-11 11:19:10 · 524 阅读 · 0 评论 -
JVM
从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制下面将这两个部分进行详细学习转载 2013-03-11 11:39:42 · 561 阅读 · 0 评论 -
编译型 解释型
计算机并不能直接接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过一种翻译程序翻译成机器语言形式的目标程序,计算机才能识别.这种翻译程序有两种形式:一种是编译方式,一种是:解释方式. 那什么是编译方式和解释方式? 编译方式:事先编好一个称为编译程序的机器语言程序,作为系统软件存在在电脑中,当用户输入高级语言编写的源程序时,此计算机中的编译程序直接把用转载 2014-02-27 15:20:07 · 846 阅读 · 0 评论 -
静态变量初始化
我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是(静态变量、静态初始化块(顺序按声明顺序))>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点: Java代码 public class InitialOrderTest { // 静态变量 public static String staticField = "静态变转载 2014-02-27 11:17:29 · 2016 阅读 · 0 评论 -
Java内存分配
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在转载 2013-10-21 16:14:52 · 636 阅读 · 0 评论 -
排序算法
1. 选择排序选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的最小值,然后将找到的最小值与 i 指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择最大值的子流程,所以人们形象地称之为选择排序。举个实例来看看:初始: [38, 17, 16, 16, 7, 31, 39, 32, 2, 11]i = 0:转载 2013-08-07 15:05:47 · 992 阅读 · 0 评论 -
Java引用传递&值传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。Java参数,不管转载 2013-08-07 14:42:40 · 449 阅读 · 0 评论 -
多线程
线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:转载 2013-07-26 11:35:02 · 667 阅读 · 0 评论 -
Collection
Map接口: | + -- WeakHashMap: 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。此实现不是转载 2013-05-28 13:11:31 · 463 阅读 · 0 评论 -
Java IO
什么是流: 流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。数据源可以是文件,内存或者网络等。同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。流的创建是为了更方便地处理数据的输入输出。 流分为字节流和字符流。字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的实现是基于自动转载 2013-03-21 15:52:41 · 609 阅读 · 0 评论 -
synchronized
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到锁转载 2013-03-15 16:08:24 · 553 阅读 · 0 评论 -
Java程序执行过程
JVM Java Virtual Machine(Java虚拟机)。 Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。转载 2013-03-11 11:29:57 · 1691 阅读 · 0 评论 -
强引用,软引用,弱引用,虚引用
SoftReference、Weak Reference和PhantomRefrence分析和比较 本文将谈一下对SoftReference(软引用)、WeakReference(弱引用)和PhantomRefrence(虚引用)的理解,这三个类是对heap中java对象的应用,通过这个三个类可以和gc做简单的交互。 强引用: 除了上面提到的三个引用之外,还有一个引用转载 2014-09-29 16:19:00 · 565 阅读 · 0 评论