
java基础
xuehanxin
一个人能走多远,要看他有谁同行;一个人有多优秀,要看他有谁指点;一个人有多成功,要看他有谁相伴。
展开
-
checkStyle 文档
checkStyle 文档 <!--[if !supportLists]-->1. <!--[endif]-->checkStyle简介 Checksytle 是一款代码格式检查工具。它可以根据设置好的编码规则来检查代码。比如符合规范的变量命名,良好的程序风格等等。如果你的项目经理开会时说,“我希望我们写出来的代码就象一个人写的!” 时,用Checks...原创 2011-08-16 09:40:31 · 316 阅读 · 0 评论 -
java总结-集合-1
记性逐渐不好,有的东西忘记,本文复习备忘用,先从最基本的java基础集合开始,集合分为Collection接口和Map接口,这两个接口又衍生出了很多子接口,下面对着2个接口分别作介绍。 一,collection接口 直接实现Collection的类和继承他的接口下图 可以看到有4个接口4个类,下面主要对AbstractCollection类和List,Queue,Set接口进行逐一研究...原创 2015-01-09 23:34:10 · 133 阅读 · 0 评论 -
java批量插入队列笔记
往数据库里插入大量的数据,当然是批量插入最高效,我们设定一个题目,每次把数据放入队列,当数据大于1000条或者时间大于5分钟后把数据批量入库 队列处理代码: package bathQueue; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ArrayBlockingQ...原创 2014-03-02 10:37:31 · 457 阅读 · 0 评论 -
java 枚举
Java enum的用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch...原创 2014-03-23 16:06:11 · 79 阅读 · 0 评论 -
jmv第一节-jvm基础
1.jvm的启动,先看一副图 这个是jvm的启动流程,从加载jvm的配置到找到JVM.dll找到我们的程序的主入口main方法的过程。 2.JVM的整体架构 这个是jvm的基本结构,jvm有的功能这里都展现出来的,加载class文件到方法区,生成对象到堆中,每个线程的私有的栈,垃圾收集器,实际执行引擎是这里的核心,它与所有的模块都有或多或少的交互 PC寄存器 每个线程拥有...原创 2016-02-11 11:48:24 · 369 阅读 · 0 评论 -
jmv第四节-垃圾回收器详细讲解
这篇文章我想和大家分享一下现在java的垃圾回收器 1.串行回收器 -XX:+UseSerialGC 使用一个线程进行串行回收,新生代采用复制算法,老年代使用标记-压缩算法,回收的时候程序全部暂停 缺点是:停顿时间长 有点是:久经考验,bug少 2.ParNew -XX:+UseParNewGC 新生代并行,老年代串行 回收的时候程序全部暂停 3.Paralle...原创 2016-02-13 17:34:41 · 206 阅读 · 0 评论 -
jvm第五节-性能调优工具使用
很多开发人员都不是很了解,jdk在安装的时候在bin目录下有很多方便我们调试的工具,有的工具是非常好用的,下面介绍一下jdk自带的调优工具和一些常见的非自带的工具: 名称 作用 jps JVM Process Status Tool,现实指定系统内所有的HotSpot虚拟机进程 jstat JVM Statistics Monitor...原创 2016-02-21 18:52:55 · 258 阅读 · 0 评论 -
jvm第六节-类加载器
类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,J...2016-03-13 19:20:45 · 109 阅读 · 0 评论 -
jvm第7节-锁(偏向锁,轻量锁,自旋锁)
在介绍锁之前我们先介绍一个线程不安全的例子,一个全局的list,开2个线程往里面插入数据,代码如下: package com.jvm.day6.lock.demo; import java.util.ArrayList; import java.util.List; /** * 测试都线程共享一个变量带来的现象 * @Author:xuehan * @Date...2016-03-20 17:42:21 · 405 阅读 · 0 评论 -
jvm第8节-解析class文件
最近看了周志明的深入java虚拟机,看到堆字节码解析这一章节,觉得特别的枯燥无味,于是我花了一段时间解析了一个class文件,由于方法体和属性这两项篇幅太长没做解析,想看这两个解析的略过。 class文件具有与语言无关性的特点,很多语言都可以编译成class文件,让jvm执行,class文件结构如下: 1.魔数 2.版本 3.常量池 4.访问符 5.类、超类、接口 6.字段 7....2016-03-27 15:57:31 · 136 阅读 · 0 评论 -
jvm第9节-asm生成class字节码
一、什么是ASM ASM是一个JAVA字节码分析、创建和修改的开源应用框架。在ASM中提供了诸多的API用于对类的内容进行字节码操作的方法。与传统的BCEL和SERL不同,在ASM中提供了更为优雅和灵活的操作字节码的方式。目前ASM已被广泛的开源应用架构所使用,例如:Spring、Hibernate等。 二、ASM能干什么 分析一个类、从字节码角度创建一个类、修改一个已经被...2016-04-03 15:00:02 · 341 阅读 · 0 评论 -
java多线程-生产者消费者
例子用java多线程模拟生产者消费者的例子,上代码,代码有注释说的清楚: 仓库 package day5; /** * <p>Title: Warehouse.java</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2014</p>...原创 2014-02-07 21:58:26 · 125 阅读 · 0 评论 -
mmpeg转码
用例1:设置播放速率ffmpeg -i input.avi -b:v 64k -bufsize 64k output.aviTo set the video bitrate of the output file to 64kbit/s 用例2:强制文件播放帧速To force the frame rate of the output file to 24 fps 用例3:amr转MP3ffmpe...2013-01-09 11:43:02 · 619 阅读 · 0 评论 -
java多态深入理解(一)
很多人都知道面向对象的三大特性:继承 封装 多态,可是真正理解好这三特性并不是一件简单的事.本周我打算对多态进行研究并写下我的小例子: // 乐器类 class MusicInstruments{ public void play(){ System.out.println("play music"); } public void Instruments(MusicIns...原创 2011-09-20 20:18:35 · 142 阅读 · 0 评论 -
java多态深入理解(二)
昨天写了那个列子关于多态的故事(一),仔细想想用的并不是很合理,于是从新写了一下 package bean; // 乐器类 class MusicInstruments1{ public void play(){ System.out.println("play music"); } } // 笛子类继承乐器类 class Flute1 extends MusicIn...原创 2011-09-22 19:39:33 · 92 阅读 · 0 评论 -
java压缩解压
最近看到一个有关用java压缩的例子,自己想总结一下,这个方法可以把一个压缩文件解压,列入文件名称为test.zip,不管test.zip里面有多少文件和文件夹都可以加压出来,也可以把解压后的文件压缩成test.zip代码如下: package bean; import java.io.BufferedInputStream; import java.io.BufferedOutputS...原创 2011-09-24 18:03:12 · 97 阅读 · 0 评论 -
myeclipse方法和类的自动注解
设置新建类注释Window->preferences->java->code style ->codeTemplates->code->new Java files ->edit修改成 ${filecomment} ${package_declaration} /** * @className:${file_nam...原创 2011-09-29 16:16:04 · 117 阅读 · 0 评论 -
排序及二分查找
/** * @className:TwoDivide.java * @classDescription:排序和二分查找 * @author:jiangmianyue * @createTime:2011-6-15 */ public class TwoDivide { /** * 冒泡排序 * * @author jiangmianyue ...原创 2011-07-19 19:25:44 · 135 阅读 · 0 评论 -
Java实现文件拷贝的4种方法.
使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢?最近看了看NIO决定试一试 java NIO 到底有什么性能的提升. 第一种方法:古老的方式 public static long forJava(File f1,File f2) throws Exception{ long time=new Date().getTime(); int length=2...原创 2011-11-12 11:11:48 · 92 阅读 · 0 评论 -
System.arraycopy用法知多少
先看ArrayList源码中数组复制的代码: 其实ArrayList 就是一个数组的形式存放数据的. 没有高深的地方.他的性能在于他的索引能力, 正因为他是数组形式,所以索引元素的时候他表现得非常的快速成,所以查找的时候是非常快的,但是插入或者删除一条记录就比较慢了,试想一下, 只要知道这个元素的索引,E[2] 你看对像就出来了.这就是ArrayList 最突出的地方.让我们来看下Arr...原创 2011-11-17 19:33:41 · 92 阅读 · 0 评论 -
和java反射有个约会
JAVA语言中的反射机制: 在Java 运行时 环境中,对于任意一个类,能否知道这个类有哪些属性和方法? 对于任意一个对象,能否调用他的方法?这些答案是肯定的,这种动态获取类的信息,以及动态调用类的方法的功能来源于JAVA的反射。从而使java具有动态语言的特性。 JAVA反射机制主要提供了以下功能: 1.在运行时判断任意一个对象所属的类 2.在运行时构...原创 2011-11-17 19:58:24 · 83 阅读 · 0 评论 -
java实现断点续传
用java的URL实现了一个简单的断点续传的列子,不为别的,假如你对断点续传不了解一看就明白了呵呵,算不上高深啊 package test; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessF...2011-11-29 18:56:13 · 330 阅读 · 0 评论 -
java断点续传原理
先说说断点续传的原理:这是HTTP 1.1协议的一部分,并不需要客户端特意去做多么复杂的事情。以前我曾经看过一个单位的技术标书,其中有下载的断点续传这一要求,给出的offer居然还挺高的... 简单的说,只要利用了HTTP协议(http://www.ietf.org/rfc/rfc2616.txt)中的如下字段来和服务器端交互,就可以实现文件下载的断点续传: Range : 用于客户端到...原创 2011-11-29 19:32:37 · 90 阅读 · 0 评论 -
动态代理-初级篇
最近想总结一下java的动态代理,动态代理有很多种实现方案,下面介绍三种最常用的动态搭理方案:1.jdk自带动态代理2.javassist实现动态代理3.cglib实现动态代理 接口和实现类代码: package com.java.day1.dynamicproxy.one; public interface Interface { void doSomeThing(); } ...2016-04-04 11:38:37 · 90 阅读 · 0 评论