java
日夜笙歌
要成为一个独当一面的工程师
展开
-
abstract class 和 interface的比较
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不原创 2016-07-21 18:31:57 · 351 阅读 · 0 评论 -
java -BolokingQueue
BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。 使用BlockingQueue的关键技术点如下: 1.BlockingQueue定义的常用方法如下: 1)add(anObject):把anObject加到BlockingQueue里,即如果B原创 2016-07-20 16:36:27 · 317 阅读 · 0 评论 -
Java中Synchronized的用法
转载自http://blog.csdn.net/luoweifu/article/details/46613015《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.synchronized是Java中的关键字,是一种转载 2016-07-19 15:03:29 · 230 阅读 · 0 评论 -
Java JVM:编译加载机制与自定义类加载器
转载自https://github.com/pzxwhc/MineKnowContainer/issues/27编译机制编译主要是把 .java 文件转换为 .class 文件。其中转换后的 .class 文件就包含了元数据,方法信息等一些信息。比如说元数据就包含了 Java 文件中声明的常量,也就是我们所说的常量池。类加载机制JVM 是通过 一个称为 Cl转载 2016-07-18 18:22:40 · 336 阅读 · 0 评论 -
Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
转载自https://github.com/pzxwhc/MineKnowContainer/issues/26参考了 一个面试官对面试问题的分析 中关于 GC 的分析,垃圾回收需要搞清楚 在什么时候,对什么东西,做了什么事情。在什么时候首先需要知道,GC又分为minor GC 和 Full Gc(也称为Major GC)。Java 堆内存分为新生代和老年代,新生代中又转载 2016-07-18 16:50:53 · 11348 阅读 · 1 评论 -
Java JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native thread)
转载自https://github.com/pzxwhc/MineKnowContainer/issues/25包括:1. 栈溢出(StackOverflowError)2. 堆溢出(OutOfMemoryError:java heap space)3. 永久代溢出(OutOfMemoryError: PermGen space)4. OutOfMemoryError:转载 2016-07-18 12:06:17 · 4049 阅读 · 1 评论 -
java学习笔记-java jvm内存结构分析
转载自https://github.com/pzxwhc/MineKnowContainer/issues/24JDK7 整体内存结构 和 堆内存结构JDK8 内存结构变动JDK7 堆内存和非堆内存参数实际优化JDK7 整体内存结构以下结构针对 JDK7,整体结构图如下:如图,JVM内存区域分为 PC寄存器,JVM方法栈,本地方法栈,JVM方法区,JVM堆。转载 2016-07-15 17:33:12 · 329 阅读 · 0 评论 -
java HashMap 和HashTable
转载自http://www.cnblogs.com/devinzhang/archive/2012/01/13/2321481.htmlJava的HashMap和HashTable1. HashMap1) hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列“),如下图示: 当我们往hashmap中put转载 2016-06-15 18:00:39 · 299 阅读 · 0 评论 -
java面试基础知识
1、面向对象的特征:继承、多态性、封装原创 2016-06-15 17:20:37 · 202 阅读 · 0 评论 -
Java 多线程:多线程生成的原因z
转载自https://github.com/pzxwhc/MineKnowContainer/issues/6Java 内存模型线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM(Java内存模型)的一个抽象概念,并不真实存在。它涵盖了转载 2016-07-20 17:43:58 · 289 阅读 · 0 评论 -
Java 多线程:生产者消费者问题
转载自https://github.com/pzxwhc/MineKnowContainer/issues/8概念生产者消费者问题描述了两个线程(即生产者线程和消费者线程),共享固定大小的缓冲区,在实际运行中可能出现的问题。生成者:生成一定量的数据放到缓冲区中,然后重复此过程。消费者:在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据转载 2016-07-20 17:44:47 · 335 阅读 · 0 评论 -
Java 多线程:Lock接口
转载自https://github.com/pzxwhc/MineKnowContainer/issues/16前言当我们了解了 多线程生成的原因 之后,会有相应的解决办法,最典型的就是 synchronized 和 lock。lock可以说是 synchronized 的一个替代品,synchronized 能做的事,lock 基本都可以做,而且能做得更好。他们的一些转载 2016-07-20 17:45:39 · 219 阅读 · 0 评论 -
Java 集合:HashSet,HashTable,以及 ConcurrentHashMap 概念
转载自https://github.com/pzxwhc/MineKnowContainer/issues/21HashSet阅读本文之前建议先弄懂 HashMap:Java 集合:HashMap(put方法的实现 与 哈希冲突),因为无论是 HashSet 还是 HashTable 本质上来说还是基于 HashMap的。HashSet 实现了 Set 接口,而 S转载 2016-07-21 17:04:47 · 347 阅读 · 0 评论 -
Java 集合:HashMap
转载自https://github.com/pzxwhc/MineKnowContainer/issues/19HashMap 概念对于 Map ,最直观就是理解就是键值对,映射,key-value 形式。一个映射不能包含重复的键,一个键只能有一个值。平常我们使用的时候,最常用的无非就是 HashMap。HashMap 实现了 Map 接口,允许使用 null 值转载 2016-07-21 12:21:55 · 326 阅读 · 0 评论 -
Java 集合:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比)
转载自https://github.com/pzxwhc/MineKnowContainer/issues/18Collection 与 ListCollection 是 Java 集合的一个根接口,JDK 没有它的实现类。 内部仅仅做 add(),remove(),contains(),size() 等方法的声明。List 接口是Collection 接口的一个子转载 2016-07-21 11:02:16 · 302 阅读 · 0 评论 -
Java 多线程:volatile关键字
转载自https://github.com/pzxwhc/MineKnowContainer/issues/11概念volatile 也是 多线程的解决方案之一。volatile 能够保证 可见性,但是不能保证原子性。它只能作用于变量,不能作用于方法。当一个变量被声明为 volatile 的时候,任何 对该变量的读写都会绕过 高速缓存,直接读取主内存的变量的值。如何转载 2016-07-20 17:48:03 · 232 阅读 · 0 评论 -
Java 多线程:InheritableThreadLocal 实现原理
转载自https://github.com/pzxwhc/MineKnowContainer/issues/20前言介绍 InheritableThreadLocal 之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以参考:Java 多线程:threadlocal关键字。这里再复习下 ThreadLocal 的原理,因为会对转载 2016-07-20 17:51:57 · 13798 阅读 · 0 评论 -
Java 多线程:ThreadLocal关键字
转载自https://github.com/pzxwhc/MineKnowContainer/issues/12什么是ThreadLocalThreadLocal并非一个线程,而是一个线程局部变量。它的作用就是为使用该变量的线程都提供一个变量值的副本,每个线程都可以独立的改变自己的副本,而不会和其他线程的副本造成冲突。从线程的角度看,每个线程都保持一个对其线程局部变转载 2016-07-20 17:48:43 · 1281 阅读 · 0 评论 -
Java 多线程:synchronized 关键字用法
转载自https://github.com/pzxwhc/MineKnowContainer/issues/7前言在 多线程生成的原因(Java内存模型与i++操作解析) 中,介绍了Java的内存模型,从而可能导致的多线程问题。synchronized就是避免这个问题的解决方法之一。除了 synchronized 的方式,还有 lock,condition,volati转载 2016-07-20 17:47:01 · 223 阅读 · 0 评论 -
Java 多线程:Condition关键字
转载自https://github.com/pzxwhc/MineKnowContainer/issues/10前言Condition 是一种更细粒度的并发解决方案。就拿生产者消费者模式来说,当仓库满了的时候,又再执行到 生产者 线程的时候,会把 该 生产者 线程进行阻塞,再唤起一个线程.但是此时唤醒的是消费者线程还是生产者线程,是未知的。如果再次唤醒的还是转载 2016-07-20 17:46:21 · 355 阅读 · 0 评论 -
Java Collection
转载自http://blog.csdn.net/itlwc/article/details/10148321Collection层次结构Collection[plain] view plain copy print?子接口 Set,List 集合中只能放置对象的引用,不能放置原生数据类型, 我们需要使用原生数据类型的转载 2016-06-15 12:10:09 · 281 阅读 · 0 评论 -
java Map
转载自http://blog.csdn.net/itlwc/article/details/10155669Map层次结构Map[plain] view plain copy print?实现类 HashMap,LinkedHashMap,Hashtable 子接口 SortedMap 实现类 T转载 2016-06-15 12:05:01 · 236 阅读 · 0 评论 -
关于类的生命周期
转载自http://blog.csdn.net/sunboy_2050/article/details/7536734转载 2015-08-06 09:52:07 · 283 阅读 · 0 评论 -
Eclipse快捷键操作
文件导航:CTRL+ SHIFT +R: 打开一个资源文件(所有)CTRL + E:打开(编辑)已经打开了的文件CTRL +PAGE UP or PAGE DOWN:向上或者向下翻已经打开了的文件;ALT :跳到上一个或者下一个编辑的位置java编辑:CTRL + O:列出当前文件所有的方法和变量,并可以进行查找CTRL +SHIFT +U:查找当前文件原创 2015-07-22 17:45:24 · 312 阅读 · 0 评论 -
常见异常
异常的处理:原创 2015-07-20 15:21:08 · 302 阅读 · 0 评论 -
FatJar打包工具
转载自http://blog.csdn.net/sunboy_2050/article/details/16805269转载 2015-07-27 11:59:12 · 303 阅读 · 0 评论 -
面向对象编程的特征以及常用的修饰符
面向对象编程具有三个主要特征:1、继承性:指的是父类与子类之间的关联;2、多态性:基类中的属性和方法在被子类继承之后,可以出现不同的数据类型或者表现出不同的行为;3、封装性:将对象的属性和行为(方法)封装起来的载体就是类;定义类的几个修饰符:public :原创 2015-07-08 16:51:57 · 736 阅读 · 0 评论 -
java多态性的体现
java多态性是java的一个主要特征,体现在方法的重写以及方法的重载。方法的重载指的是在类中具有多个方法名称相同但参数个数或者参数类型不同的方法,并且这些方法的功能是相似的。方法的重写指的是在子类继承父类中,子类的方法与父类的方法名称(参数一致)相同则会导致父类的方法被覆盖,子类为了完善父类的功能或者改变父类的功能而修改此方法的行为。原创 2015-07-09 12:21:10 · 1039 阅读 · 0 评论 -
创建字符串
创建字符串有以下几个方法:String mStr = "abc";直接常量初始化;String mStr = new String();创建一个空字符串(“”);String mStr = new String(byte []bytes);使用当前平台使用的默认字符集编码格式和指定的字节数组创建一个字符串;String mStr = new String(byte []bytes,原创 2015-07-09 15:30:12 · 747 阅读 · 0 评论 -
java几个语法规则
1、java的标识符和关键字java的标识符是指用户自己定义的类名、接口名,变量名、方法名等。java规定标识符可由任意的字母、数字、下划线以及美元符号组成,但是第一个字符不得是数字(例如 2str)并且标识符不得是关键字(例如 int)。java的关键字指的是java中已经被赋予特定意义的一类字符串。2、java的编码规范java的命名规范:常量命名应该都用大写字母,单词原创 2015-07-08 15:12:56 · 1228 阅读 · 0 评论 -
线程池ExecutorService
转载自http://blog.csdn.net/vking_wang/article/details/9619137个人的理解线程池主要有三种:CachedThreadPool、FixedThreadPool、SingleThreadExecutor。第一种是有缓存区的线程池,初始化的线程会被放在缓存区,这个线程会被得到重复的利用,一般是这个线程并发的进行(类似转载 2015-11-23 17:45:51 · 242 阅读 · 0 评论 -
打印Http相应头字段的方法
/** * 获取Http响应头字段 * @param http * @return */ public static Map getHttpResponseHeader(HttpURLConnection http) { Map header = new LinkedHashMap();原创 2015-12-15 15:00:37 · 1449 阅读 · 0 评论 -
HashMap介绍
转载自http://alex09.iteye.com/blog/539545 HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至转载 2015-12-15 17:27:06 · 224 阅读 · 0 评论 -
Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代
转载自http://blog.csdn.net/lmj623565791/article/details/27109467继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog.1、Timer管理延时任务的缺陷a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清转载 2016-07-12 16:00:45 · 1263 阅读 · 0 评论 -
String StrintBuffer StringBuilder区别
1 StringString:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。String类的包含如下定义:[java] view plain copy print?/** The value is used for character storage. */ private final char value[转载 2016-06-15 10:41:07 · 221 阅读 · 0 评论 -
java的封箱和拆箱
转载自http://www.cnblogs.com/dolphin0520/p/3780005.html转载 2015-07-29 17:16:35 · 3890 阅读 · 0 评论 -
如何判断是否支持断点续传功能?
首先如果遵循http协议,那么就应该支持断点续传功能,因为http1.1是支持断点续传的。可以在将请求的参数设置好以后,随便设一个range,看是不是能返回正确的响应来判断是否支持断点续传原创 2016-02-17 10:09:12 · 3095 阅读 · 0 评论 -
java wait()和notify()的介绍
转载自http://www.cnblogs.com/mengdd/archive/2013/02/20/2917956.html线程间的相互作用 线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。 Object类中相关的方法有两个notify方法和三个wait方法: http://docs.oracle.com/javase/7/docs转载 2015-12-03 10:10:47 · 282 阅读 · 0 评论 -
split分割字符串
在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。如执行:String old = "old";String[] str = old.split("l");出来的结果是:str[0] = o;str[1] = d; 所以正常的写法是这样的:1、如果用“.”原创 2016-01-04 16:27:19 · 408 阅读 · 0 评论 -
枚举简单例子
public class EnumTest {public enum Month{JANUARY("january",1),FEBRUARY("February",2),MARCH("March",3),APRIL("April",4);private String mMonth;private int mValue;Month(String month,int value)原创 2015-12-31 11:44:14 · 589 阅读 · 0 评论