- 博客(13)
- 资源 (3)
- 收藏
- 关注
转载 Java源文件到字节码等情况的编码转换
java编码转换过程我们总是用一个java类文件和用户进行最直接的交互(输入、输出),这些交互内容包含的文字可能会包含中文。无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总是这样的:1、程序员在操作系统上通过编辑器编写程序代码并且以.java的格式保存操作系统中,这些文件我们称之为源文件。2、通过JDK中的javac.exe编译这些源文件形成.clas
2017-06-28 21:28:13 2403
转载 代码块详解
目录(?)[-] 一 普通代码块 二 静态代码块 三 同步代码块 四 构造代码块 五 静态代码块构造代码块构造函数执行顺序 在编程过程中我们可能会遇到如下这种形式的程序:[java] view plain copy
2017-06-28 17:25:13 444
原创 Java子类与父类强制类型转化
在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。
2017-06-25 22:07:29 7172 2
原创 Java集合总结
List:ArrayList:允许null,初始容量为10,底层使用数组实现,非线程安全,可扩容并且一次扩容1.5倍,可指定出事容量。优点:查找快(因为ArrayList底层使用数组实现,数组的特点就是可以随机取值)。缺点:增删慢(数组中的数据必须是连续的,如果被删除的数据在数组的中间,那么被删除的数据后边的元素必须依次向前移动,这很显然是浪费时间的;当添加数据的时候,如果当前数组
2017-06-25 22:04:18 264
转载 java集合工具collections
package com.cxy.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.
2017-06-25 21:42:49 327
原创 数组复制的方式以及效率
参考《链接》简介在Java中数组的复制有多种方式,常见的有:System.arraycopy、clone、Arrays.copyOf、for循环等,虽然这些都能实现数组的复制,但是效率相差较大。效率:System.arraycopy > clone > Arrays.copyOf > for循环理由:A:for循环,效率最低,随便写个程序验证一下,效率慢的不
2017-06-25 16:20:34 543
原创 JVM内存划分
简述Java虚拟机内存整体上划分为5个部分(本地方法栈、Java虚拟机栈、程序计数器、堆、方法区)。这五个部分只是Java虚拟机规范的固定,但是Java虚拟机并不唯一,而是多个机构甚至多个企业都有不同的实现方式,因此不同内存区域的具体实现并不是固定的,这个约定于具体的应用场景。本地方法栈本地方法栈和java栈的原理和作用是非常相似的。区别是值java栈是为执行java方法执行服务的。本
2017-06-25 15:08:11 302
转载 单例模式写法
第一种(懒汉,线程不安全): 1 public class Singleton { 2 private static Singleton instance; 3 private Singleton (){} 4 public static Singleton getInstance() { 5 if (instance ==
2017-06-24 15:32:38 304
原创 基本数据类型与引用类型的存储位置引发的疑问
一个问题引发的思考(基本数据类型为什么不存放在堆中?)在看到这个问题的时候内心有点小惊讶,因为跟我之前理解的不一样,那么基本数据类型到底存放在哪儿呢?在此我结合现有的只是谈谈我的理解。基本数据类型的值放在栈中,那么栈中的该基本数据类型变量从哪儿来的呢?我认为是从方法区来。我们都知道栈的生命周期决定于线程,那基本数据类型的值存放在栈中当线程完成的时候被销毁怎么办?这个不用担心,因为一个程序中
2017-06-24 14:32:10 1723
原创 多线程状态下使用同步机制的本质原因
简述在Java的学习中必然会遇到多线程和同步问题,对于初学者一般只会理解到相关api的使用,但是很少能够真正知道为什么要对多线程环境下的对象进行同步,接下来我就谈谈自己的一些理解。JVM堆与JVM栈宏观室是分离的,而微观上则又相互联系,这种分配方式使得JVM堆中的内容可以被多个JVM栈共享(也可以理解为多个线程访问同一个或者多个对象)。这种共享的收益是很多的。一方面这种共享提供了一种有效的
2017-06-24 14:06:29 4337
转载 JVM垃圾回收详解
简述垃圾回收是Java的一个重要突破,相对于C/C++程序员不需要手动请求和释放内存,而是有JVM通过固有的算法自动分配和回收,那是不是就是说我们可以愉快的使用Java而不需要关注内存方面的问题呢?答案是否定的,虽然JVM为我们提供了良好的内存分配与回收算法和机制,但是如果我们在开发的时候不注意代码的质量同样会造成内存溢出等问题,所以了解或者熟悉JVM的垃圾回收机制是非常必要的。1
2017-06-24 13:27:29 335
原创 Spring中BeanPostProcessor与InitializingBean接口的关系与应用
简介在Spring框架中,bean的定义,从编写到配置再到最终的getbean调用,框架都有相应的实现规则,具体如下所述。bean的定义 package com.spring.beans;import javax.ejb.Init;import org.springframework.beans.factory.InitializingBean;public clas...
2017-06-23 15:47:47 7538 5
原创 字符集详解
ISO-8859-1是对ASCII的扩展,简体中文的编码GB2312,ASCII占用一个字节,但是只用到了八位中的后七位,第一位默认为0,ISO-8859-1则是在ASCII的基础上扩展了第一位,并兼容ASCII,而Unicode是定长编码(定长编码对于计算机而言处理速度相对较快),使用两个字节,一个英文字母跟一个汉字占用空间相同,所以说平时看到一个字符的时候并不能直接确定它所占用的空间,而应该结
2017-06-23 11:18:58 319
SVN代码自动更新(双击运行即可)
2018-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人