- 博客(41)
- 资源 (13)
- 收藏
- 关注
原创 Java千百问_07JVM架构(014)_什么是Dump文件
点击进入_更多_Java千百问1、什么是Dump文件Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开。当我们的程序发布出去之后,在客户机上是无法跟踪代码的,所以Dump(扩展名是 .dmp)文件对于我们来说特别重要。我们可以通过.dmp文件把出现问题的情况再现,然后根据再现的状况(包
2016-05-29 10:29:46 10960 1
原创 Java千百问_03基础语法(012)_transient关键字有什么用
点击进入_更多_Java千百问1、transient关键字有什么用transient是java语言的关键字,是变量修饰符。如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。Java的serialization(序列化)提供了一种持久化对象实例的机制,当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭
2016-05-29 11:26:11 4493
原创 Java千百问_07JVM架构(015)_XmnXmsXmxXss有什么区别
点击进入_更多_Java千百问1、XmnXmsXmxXss有什么区别首先,Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。了解jvm内存管理看这里:jvm是如何管理内存的Xms、Xmx-Xms、-Xmx分配用来设置进程堆内存的最小大小和最大大小。了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收机制看这里:jav
2016-05-29 11:05:54 7645 1
原创 Java千百问_07JVM架构(013)_java什么情况会内存溢出
点击进入_更多_Java千百问1、Java堆什么情况会溢出所有对象的实例都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,如果程序使用的内存超过了堆最大内存(-Xmx),则会溢出Java heap space。了解java内存模型看这里:java内存模型是什么样的 了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收机制看这里:java垃圾回收机制是什么实例:public
2016-05-29 09:47:38 3061 1
原创 Java千百问_03基本语法(011)_final,finally,finalize有什么区别
点击进入_更多_Java千百问1、final,finally,finalize有什么区别final,finally是java的关键字,finalize是jdk的一个方法名,它们虽说字面意思类似,但是他们的使用却完全不同。具体如下:finalfinal是一个修饰符关键字。 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。 如果一个变量或方法声明为final,可以保证
2016-05-29 09:23:31 3946 2
原创 Java千百问_07JVM架构(012)_fullGC、minorGC、magorGC有什么区别
点击进入_更多_Java千百问1、fullGC、minorGC、magorGC有什么区别fullGC、minorGC、magorGC还有youngGC是Java垃圾处理机制(GC)的名词,区分这几个概念非常简单:老生代进行一次垃圾清理,被称为fullGC或者magorGC。新生代进行一次垃圾清理,被称为youngGC或者minorGC。了解java垃圾回收机制看这里:java垃圾回收机制是什么
2016-05-29 09:06:06 6436 4
原创 Java千百问_07JVM架构(011)_java垃圾回收都有哪些方式
点击进入_更多_Java千百问1、java垃圾回收都有哪些方式所谓垃圾回收方式,是指JVM提供的几种不同的垃圾回收器,不同的垃圾回收器进行垃圾回收时采用不同的方式。当然,总体原则遵循java垃圾回收机制。了解java内存模型看这里:java内存模型是什么样的 了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收机制看这里:java垃圾回收机制是什么每种方式都有自己的优势与劣势。我们编
2016-05-29 08:07:25 4370 4
原创 Java千百问_07JVM架构(010)_什么是老生代的标记算法
所谓标记算法(Mark),分为多种,最简单直观的即标记-清除算法(Mark-Sweep)。即将认定为可回收的内存做一个标记,然后统一将被标记的清理,算法图解如下:算法过程: 1. 先判定对象是否可回收,对其标记。 2. 统一回收(简单地删
2016-05-28 10:50:38 4778 1
原创 Java千百问_07JVM架构(009)_什么是新生代的复制算法
所谓复制算法(Copying),即将内存平均分成A区、B区两块,进行复制+清除垃圾的操作,算法图解如下:算法过程:新生对象被分配到A块中未使用的内存当中。当A块的内存用完了, 把A块的存活对象复制到B块。清理A块所有对象。
2016-05-28 10:23:17 4133 4
原创 Java千百问_02基本使用(007)_eclipse变量高亮如何打开
点击进入_更多_Java千百问1、eclipse变量高亮如何打开在开发中,我们经常会有这样的需求:想看某个变量或者方法在哪里被使用。eclipse提供了这样的功能,在选中变量后,会在同一文本中显示所有该关键字出现的地方那个,加上灰色背景高亮。开启/关闭该功能:windows-> preferences->java->Editor->Mark Occurrences选中“Mark Occurrence
2016-05-28 09:53:25 3995
原创 Java千百问_07JVM架构(008)_java垃圾回收机制是什么
1、如何判断垃圾对象垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理。通常的编程语言都会用以下算法之一进行判断:引用计数(ReferenceCounting)算法 这种方法比较简单直观,核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该对象没有被引用,可以被回收。FlashPlayer/Python使用该算
2016-05-28 09:47:18 3341 3
原创 Java千百问_02基本使用(006)_eclipse如何保存时格式化
点击进入_更多_Java千百问1、eclipse如何打开保存时格式化我们都知道,为了让代码可读性更高,eclipse提供了代码格式化的功能,一般指定了对应format文件(eclipse会默认自带)后,通过快捷键Ctrl+Shift+F来进行格式化。然而,很多时候并不方便,而且在修改完代码后容易忘记。其实还有一种更好的方法:保存时自动格式化。每次保存都会自动格式化,十分方便。方法如下:具体方法:wi
2016-05-28 08:51:26 4067
原创 Java千百问_06数据结构(022)_String在内存中如何存放
点击进入_更多_Java千百问1、String在内存中如何存放了解String是什么看这里:String是什么 String是一个特殊的包装类数据。 可以用两种的形式来创建:String str = new String( "abc" );String str = "abc" ;了解java如何管理内存看这里:jvm是如何管理内存的 了解java堆和栈的区别看这里:java堆和栈有什么区别第
2016-05-24 09:56:00 3055
原创 Java千百问_07JVM架构(007)_java堆内存是什么样的
点击进入_更多_Java千百问1.堆内存是什么样的了解jvm实例模型看这里:jvm实例的结构是什么样的 了解java内存框架看这里:jvm是如何管理内存的 了解堆栈的区别看这里:java堆和栈有什么区别 每一个jvm实例都会被分配一个被所有线程共享的堆内存空间,用来存放对象和数组,作为jvm的数据集中管理区,存取效率、空间释放就成为了重中之重,jvm通过多区架构来完成这两个目标的达成。其结构如
2016-05-22 21:36:03 4277 4
原创 Java千百问_07JVM架构(006)_java堆和栈有什么区别
在《jvm是如何管理内存的》这篇文章中,已经对PC寄存器(计数器 pc registers)、方法区(method area)、本地方法栈(native method stacks)、栈(stacks)、堆(heap)内存区域做了介绍,其中栈(stacks)、堆(heap)是java内存管理
2016-05-22 12:09:24 5251 1
原创 Java千百问_07JVM架构(005)_显示内存管理有什么弊端
点击进入_更多_Java千百问1、显示内存管理有什么弊端手动内存管理一般被称为显示内存管理,显示内存管理经常发生两种情况:引用悬挂 当一个被某个引用变量正在使用的内存空间,在重新分配过程中被释放掉了,释放后,该引用变量就处于悬挂状态(所引用的对象已经不存在了)。 如果这个被悬挂引用变量,试图操作原来对象的时候,由于该对象本身的内存空间已经被手动释放掉了(已经不存在了),所以这个执行结果是不可预
2016-05-22 11:05:58 4729 1
原创 Java千百问_06数据结构(021)_StringBuffer/StringBuilder有什么区别
点击进入_更多_Java千百问1、StringBuilder是什么StringBuilder是非线程安全的可变字符串类。 java.lang.StringBuilder这个可变的字符序列类是5.0新增的。继承于AbstractStringBuilder(大部分方法都在该类实现),并不是线程安全的,当多个线程同时修改一个对象时很可能会冲突。了解String是什么看这里:String是什么部分Abst
2016-05-22 10:56:00 10672
原创 Java千百问_06数据结构(020)_String是什么
点击进入_更多_Java千百问1、String是什么java.lang.String类表示字符串常亮,所谓字符串,就是一组字符组成的字符集合。它有以下几个特点:String是不可变的对象 每次对String进行改变的时候,其实都等同于生成了一个新的String对象,然后将指针指向新的String对象(若不使用new构造,实际是从堆中的String池查找是否已经再存该字符串,若有则直接指向;若没有则
2016-05-22 09:25:20 2142 1
原创 Java千百问_07JVM架构(004)_jvm是如何管理内存的
点击进入_更多_Java千百问1、JVM是如何管理内存的Java中,内存管理是JVM自动进行的,无需人为干涉。了解java内存模型看这里:java内存模型是什么样的 了解jvm实例结构看这里:jvm实例的结构是什么样的 创建对象或者变量时, JVM会自动分配内存(当然这个分配是遵循严格规则的)。当JVM发现某些对象不再需要的时候,就会对该对象占用的内存进行重分配(释放)操作,而且使得分配出来的内
2016-05-21 12:49:43 8570 4
原创 Java千百问_07JVM架构(003)_内存分配有哪些策略
点击进入_更多_Java千百问1、内存分配有哪些策略我们从编译原理讲起,不同的开发环境、开发语言都会有不同的策略。一般来说,程序运行时有三种内存分配策略:静态的、栈式的、堆式的静态存储 是指在编译时就能够确定每个数据目标在运行时的存储空间需求,因而在编译时就可以给它们分配固定的内存空间。 这种分配策略要求程序代码中不允许有可变数据结构的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编
2016-05-21 11:55:14 5030 1
原创 Java千百问_07JVM架构(002)_jvm实例的结构是什么样的
点击进入_更多_Java千百问1、jvm实例的结构是什么样的在Java虚拟机规范中,一个虚拟机实例的行为主要组成部分为:子系统、内存区域、数据类型和指令。 这些组件描述了JVM内部的一个抽象结构。与其说这些组成部分的目的是进行JVM内部结构的一种支配,不如说是提供一种对外部行为的严格定义,该规范定义了这些抽象组成部分的相互作用,以及Java虚拟机执行所需要的行为。了解jvm内存管理看这里:java
2016-05-21 10:39:10 3041 1
原创 Java千百问_01基本概念(006)_线程和进程有什么区别
点击进入_更多_Java千百问1、进程是什么进程(process)是具有一定独立功能的程序,操作系统利用进程把工作划分为一些功能单元。进程是进行资源分配和调度的一个独立单位。它还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。一个应用程序(application)是由一个或多个相互协作的进程组成的。例如,Visual Studio开发环境就是利用一个进程编辑源文件,并利用另一个进程完成编
2016-05-21 09:52:08 5727 2
原创 Java千百问_07JVM架构(001)_java内存模型是什么样的
点击进入_更多_Java千百问1、什么是内存模型 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多。Java针对多种异构平台的独立性,使得多线程技术也具有了开拓性的一面。 我们有时候在Java开发中,对于同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型。那究竟什么是内存模型呢? 内存模型描述了程序中各个变量(实例域、静
2016-05-15 19:03:57 8092 1
原创 Java千百问_06数据结构(019)_Arrays类有什么功能
点击进入_更多_Java千百问1、Arrays类有什么功能java.util.Arrays中的类包含了很多静态方法,用于排序数组、搜索数组、比较数组和填充数组元素等功能。了解一维数组看这里:java中的数组是什么常见方法如下:public static int binarySearch(Object[] a, Object key) 使用二分法搜索数组中指定值的位置(下标)。如果数组类型非基本数
2016-05-15 10:23:07 4278
原创 Java千百问_06数据结构(018)_多维数组如何储存在内存中
点击进入_更多_Java千百问1、多维数组如何储存在内存中了解一维数组如何储存看这里:java数组如何存储在内存中从底层来看,数组元素可以存放引用类型,数组也是引用类型的一种。也就是说,在数组元素的内部还可以包含数组(如int[][] numbers = new int[length][]),即二维数组可当作一维数组(数组长度为length)来处理。了解数组和普通引用对象在内存中的区别看这里:数组和
2016-05-15 09:22:28 4882
原创 Java千百问_06数据结构(017)_什么是二维数组
点击进入_更多_Java千百问1、二维数组如何定义Java语言中,多维数组被看作数组的数组。 了解一维数组看这里:java中的数组是什么 定义方式和一维数组类似,如下:type arrayName[ ][ ]; type [ ][ ]arrayName;2、二维数组如何初始化二维数组初始化和一维数组一样,分为静态初始化和动态初始化静态初始化 Java语言中,由于把二维数组看作是数组的数组,
2016-05-15 08:46:01 4500
原创 Java千百问_06数据结构(016)_引用类型数组在内存中如何储存
点击进入_更多_Java千百问1、存放基本类型数组在内存中如何储存了解什么是数组看这里:java中的数组是什么 了解数组在内存中的储存看这里:java数组如何存储在内存中 java的数组中可以存放引用类型。 存放引用类型的内存分布相比存放基本类型相对复杂。来看一段存储基本类型的程序:public class TestPrimitiveArray { public static void
2016-05-14 13:27:32 5082 2
原创 Java千百问_06数据结构(015)_数组和普通对象的引用变量有什么区别
点击进入_更多_Java千百问1、数组和普通对象的引用变量有什么区别了解什么是数组看这里:java中的数组是什么 对于java的数组来说,只有类型兼容(即属于同一数据类型体系且遵守优先级由低到高原则),才能将数组引用传递给另一数组引用,但仍然不能改变数组长度(仅仅只是调整数组引用指针的指向)。 了解数组传递看这里:数组如何传递public class TestArrayLength {
2016-05-14 10:40:44 12030 4
原创 Java千百问_06数据结构(014)_java数组如何存储在内存中
点击进入_更多_Java千百问1、数组的内存空间是何时分配的java中的数组是用来存储同一种数据类型的数据结构,一旦初始化完成,即所占的空间就已固定下来,初始化的过程就是分配对应内存空间的过程。即使某个元素被清空,但其所在空间仍然保留,因此数组长度将不能被改变。 了解什么是数组看这里:java中的数组是什么 当仅定义一个数组变量(int[] numbers)时,该变量还未指向任何有效的内存,因此
2016-05-14 10:07:19 4660
原创 Java千百问_06数据结构(013)_数组如何传递
点击进入_更多_Java千百问1、数组如何传递我们可以将数组作为参数传递给方法,方式同传递基本类型参数一致。 了解什么是数组看这里:java中的数组是什么 了解循环数组便利看这里:如何遍历数组 例子:public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { Syste
2016-05-08 21:37:15 1513
原创 Java千百问_06数据结构(012)_如何遍历数组
点击进入_更多_Java千百问1、如何遍历数组我们在处理数组时,经常使用for循环或foreach循环进行遍历,因为数组中的所有元素类型相同并且数组的大小是已知的。 了解什么是数组看这里:java中的数组是什么 了解for循环看这里:java中如何循环执行使用for循环遍历public class TestArray { public static void main(String[] ar
2016-05-08 09:47:16 2034
原创 Java千百问_06数据结构(011)_java中的数组是什么
点击进入_更多_Java千百问1、什么是数组Java提供了一个用于存储相同类型的元素的,固定大小的连续集合数据结构:数组。数组是用于存储数据的集合,储存相同类型数据的集合。与单个变量相比(如number0, number1 … number99),数组变量需要使用下标索引来确定数组中某个数据的顺序(如numbers[0], numbers1 … numbers[99] )。 了解变量看这里:局部变
2016-05-07 21:43:31 2925
原创 Java千百问_06数据结构(010)_Class类型是什么
点击进入_更多_Java千百问1、Class类型是什么还有一种特殊的数据类型:class,用来表示某个类的类型。即,每一个类类型都是Class类的一个对象。 了解数据类型看这里:java中数据类型是什么 java基本数据类型看这里:java有哪8种基本数据类型 用type name加上.class表示,例如String.class。Class规则下:首先,String是类Class(java
2016-05-07 19:51:10 1993
原创 Java千百问_06数据结构(009)_void是什么
点击进入_更多_Java千百问1、void是什么java中还存在一种特殊的基本类型void。 了解数据类型看这里:java中数据类型是什么 java基本数据类型看这里:[java有哪8种基本数据类型][3] void是指:无类型。在java中void表示方法无返回值。void也有对应的包装类java.lang.Void,不过我们无法直接对它们进行操作。 它继承于Object,但不能扩展。如下
2016-05-07 08:12:38 3112
原创 Java千百问_06数据结构(008)_null属于哪种数据类型
点击进入_更多_Java千百问1、null属于哪种数据类型首先,在java中,null本身不是对象,也不是Objcet的实例。那么他属于哪种数据类型呢? 了解数据类型看这里:java中数据类型是什么 java基本数据类型看这里:[java有哪8种基本数据类型3 具体看下面这个例子:if (null instanceof java.lang.Object) { System.out.pr
2016-05-07 00:09:18 5544
原创 Java千百问_06数据结构(007)_String属于基本数据类型吗
点击进入_更多_Java千百问1、String属于基本数据类型吗首先要明确的是,String不是基本数据类型,它继承于Object,是一个jdk提供的字符串类。 但是,String和其他对象相比,jdk做了很多特殊的处理。体现在如下几个方面:String可以通过new构造对象,也可以直接赋值。
2016-05-06 23:18:46 3055
原创 Java千百问_06数据结构(006)_java基本数据类型如何转换
点击进入_更多_Java千百问1、基本类型如何相互转换我们看到,将一种类型的值赋给另一种类型是很常见的。在Java中,boolean类型与所有其他7种类型都不能进行转换,这一点很明确。 对于其他7中数值类型,它们之间都可以进行转换,但是可能会存在精度损失或者其他一些变化。 java中8种基本数据类型看这里:java有哪8种基本数据类型 转换分为自动转换和强制转换。对于自动转换(隐式),无需任何
2016-05-02 21:27:02 4587 1
原创 Java千百问_06数据结构(005)_数值中为什么会出现下划线
点击进入_更多_Java千百问1、数值中为什么会出现下划线这是Jdk 7之后的一个特性。 从Jdk 7开始,可以在数值型字面值(包括整型字面值和浮点字面值)插入一个或者多个下划线。例如:int x = 123_456_789;在编译的时候,下划线会自动去掉。但是下划线只能用于分隔数字,不能分隔字符与字符,也不能分隔字符与数字。可以连续使用下划线,例如:float f = 1.22___33__44
2016-05-02 18:26:30 4300
原创 Java千百问_06数据结构(004)_java数据类型的字面值是什么
点击进入_更多_Java千百问1、java数据类型的字面值是什么首先看一个问题,我们知道byte是一个8位整数的基本类型,范围-128到127,我们可以这样说使用:byte a = 127;byte a = 0;但是,当我们定这样一个方法: public static void a(byte a) { System.out.println("byte:" + a);
2016-05-01 17:40:14 2264 1
原创 乔帮主告诉你什么是面向对象
对于面向对象编程这个概念,至今为止我还未见过有人能比乔布斯诠释得更加透彻。乔布斯从来没有接受过正式的工程训练,但是他对于自己所做的和所说的都有非常清晰的思路,无论是技术、设计还是艺术。 早在1994年,Rolling Stone对乔布斯有一个采访。在那个年代,面向对象仍然是一个很潮的概念,能够理解并付出实践的人并不多,而乔布斯却给公众定义了什么是面向对象。 Jeff Goodell: 请你用尽
2016-05-01 10:58:54 5204 3
Kenai的java转汇编插件mac版hsdis-amd64.dylib
2017-09-12
设计模式_创建类_5种模式Java的实际例子_注释详细
2015-01-21
最好用的轻量级UML工具StarUML安装版
2015-01-13
eclipse插件_最好用的UML工具Amateras
2015-01-13
Swift中CoreData经典实例_中文注释完全版
2014-11-19
Oracle技术_5分钟会用存储过程_存储过程简单实例
2014-11-17
Swift经典实例_中文注释完全版
2014-11-06
ESB(OSB)使用及普通服务配置说明
2014-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人