
java基础
文章平均质量分 75
亮宇
shawn.chan8585@gmail.com
展开
-
万能 dao 增删改查一个方法搞定
package heima.shawn.utils;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.sql.Connection;import java.sq原创 2011-08-30 05:13:57 · 2216 阅读 · 3 评论 -
【轻松学排序算法】眼睛直观感受几种常用排序算法(转载)
1 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需原创 2011-12-27 17:51:57 · 516 阅读 · 0 评论 -
从 Java 代码逆向工程生成 UML 类图和序列图
从 Java 代码逆向工程生成 UML 类图和序列图 收藏 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Software Architect 从 Java™ 源代码来逆向工程生成 UML 类和序列图。 逆向工程经常被用来从已有的源代码中以一种抽象模型 UML 格式来获得丢失的设计文档,其可以用来研究一个系统的静态结构和动态行为,并用于扩展新的特性到产品转载 2013-02-01 16:10:57 · 1140 阅读 · 0 评论 -
利用LinkedBlockingQueue实现生产者-消费者模式
由于LinkedBlockingQueue 实现是线程安全的,实现了先进先出等特性,是作为生产者消费者的首选,LinkedBlockingQueue 可以指定容量,也可以不指定,不指定的话,默认最大是Integer.MAX_VALUE,其中主要用到put和take方法,put方法在队列满的时候会阻塞直到有队列成员被消费,take方法在队列空的时候会阻塞,直到有队列成员被放进来。下面是一个例子,一看转载 2013-02-01 15:23:57 · 700 阅读 · 0 评论 -
Android 插件化
1、作用大多数朋友开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,从这个介绍中也知道可以通过多个 Dex 来解决这个问题,因而便有了插件化的概念,将一个 App 划分为多个插件(Dex或相关格式)常用的其他解决方法还包括:删无用代码,用 H5 代替部分逻辑,买付费版的 Proguard插件化的其他作用包括:(1) 模块解耦,(2)转载 2014-09-11 17:58:41 · 837 阅读 · 0 评论 -
jvm开发笔记1---class文件解析器
笔者最近对java虚拟机产生了浓厚的兴趣, 想了解下最简单的jvm是如何写出来的,于是看起了《java虚拟机规范》,这个规范如同intel开发手册一样,是每个jvm开发人员必须掌握的。 要想翻译执行java byte code, 首先得从java class文件中把Code属性解析出来才行。 在笔者看来, java的class文件结构着实比elf文件结构复杂很多,不过在复杂的结构, 只要耐心对照着转载 2014-12-04 15:59:54 · 808 阅读 · 0 评论 -
jvm开发笔记2---java反汇编器
这两天在class文件解析器的基础上, 加上了java反汇编的功能, 反汇编器是指令解释器的基础,通过编写反汇编器可以熟悉jvm的指令系统, 不过jvm的指令一共有201个,反汇编过程基本就是个体力活。在《java虚拟机规范》中对每一条指令都有了详细的描述,下面说说我是如何解析bytecode的:一个java文件经过javac编译后会生成class格式文件, 在class格式中method转载 2014-12-04 16:02:31 · 1121 阅读 · 0 评论 -
jvm开发笔记3---java虚拟机雏形
一、背景 笔者希望通过自己动手编写一个简单的jvm来了解java虚拟机内部的工作细节毕竟hotsopt以及android的dalvik都有几十万行的c代码级别。 在前面的2篇开发笔记中已经实现了一个class文件解析器和一个java反汇编器 在这基础上 java虚拟机的雏形也已经写好。还没有内存管理功能 没有线程支持。它能解释执行的指令取决于我的java语法范围 在这之前我对java转载 2014-12-04 16:03:29 · 838 阅读 · 0 评论 -
SPDY协议的Android实现 OKHTTP代码分析
1 概况 Introduction在Android上我们用开源项目OkHttp作为客户端的SPDY协议栈链接支持SPDY的网站,如Taobao CDN等。本文主要分析OkHttp是如何在Android的通信层扩展SPDY。先简要介绍一下SPDY。SPDY的主要目标:单个tcp连接支持并发的Http请求。这主要是解决目前http协议的一个连接只能服务一次请求的问题。压缩请求/响应头。转载 2014-12-04 16:18:24 · 7424 阅读 · 0 评论 -
Android的线程和内存模型
Android的线程和内存模型Android操作系统在boot后,会启动一个Zygote(受精卵)进程,Zygote进程负责创建大部分应用程序进程。Zygote进程启动加载核心程序库和数据结构到内存后会创建一个Dalvik虚拟机(DVM)进程--SystemServer,此进程会包含大部分的系统服务(包括管理Activity的服务ActivityManagerService),System转载 2014-12-04 14:42:31 · 2541 阅读 · 0 评论 -
jvm开发笔记4---jvm crash信息处理
ajvm是一个笔者正在开发中的java虚拟机, 用c和少量汇编语言编写, 目的在于探究一个可运行的java虚拟机是如何实现的, 目前整个jvm的source code代码量在5000行左右, 预计控制在1w行以内,只要能运行简单的java代码即可。笔者希望ajvm能变成一个教学用的简单java虚拟机实现, 帮助java程序员在陷入庞大的hotspot vm源码之前, 能对jvm的结构有个清晰的认识转载 2014-12-04 16:05:22 · 928 阅读 · 0 评论 -
protobuf java编码基础 (转载)
Protobuf java基础本文档为java编程人员使用protocol buffer提供了一个基本的介绍,通过一个简单的例程进行介绍。通过本文,你可以了解到如下信息:1、在一个.proto文件中定义一个信息格式.2、使用protoc命令进行编译,生成java代码.3、使用Java protocol buffer API进行读写操作.l 定义proto文件以一个地址薄为原创 2011-11-25 15:53:11 · 1035 阅读 · 0 评论 -
java中的动态代理》》》》》
Proxy 代理类!!! 通过代理动态生成字节码,必须为它提供一个或多个要实现的接口。。。。 和匿名类有点相似的感觉!! 调用Proxy的静态方法getProxyClass获得创建的字节码Class类型,,这个方法接受两个参数,一个类加载器,一个原创 2011-05-05 19:13:00 · 640 阅读 · 0 评论 -
java中的ClassLoader类加载器
java虚拟机中的类加载是一个以树状分层的结构。。。。每个类加载器是分区域进行加载工作的。。 最顶级得加载器BookStarp是嵌入在java虚拟机中的,他负责加载 JRE/lib/rt.jar包中的类,,其他的类加载器都是java中的类。。 顶级之下的ExtC原创 2011-05-05 14:37:00 · 698 阅读 · 0 评论 -
java IO流总结
语法很乱,想到一点加一点。File类,作为IO流输入输出的基本介质中的一种,在java中封装成类,其中存储着一系列文件信息,getPath()返回此相对路径名的一个路径名字符串。getAbsolutePath() 返回此相对路径名的绝对路径名形式。exists()判断文件是否原创 2011-04-30 15:17:00 · 1174 阅读 · 1 评论 -
内省-----》javabean,以及BeanUtils
Introspector----》javabean---》特殊的java类VO,,,value object 值对象,,, PropertyDescripor属性详情,可以通过它来的getReadMethod和getWriteMethod来获得该属性的的getter原创 2011-05-03 10:09:00 · 770 阅读 · 0 评论 -
java1.5新特性-----》注解----Annotation
Annotation注解,,,可以对类,包,成员变量,局部变量,方法,方法参数 进行解释。。。 通过反射将可以判断一个类是否有标记有某个注解。。。 package annotationTest;import java.lang.annotation原创 2011-05-04 08:53:00 · 1102 阅读 · 1 评论 -
实现简单Spring框架核心-------!!
//config.properties配置文件proxyName=java.util.ArrayList#proxyName=mySpringFramework.ProxyFactoryBeanproxyName.advice=mySpringFramework.Count原创 2011-05-05 20:46:00 · 809 阅读 · 1 评论 -
java5线程并发库中的工具
Shawn 原创,转载请注明!原文地址:http://blog.youkuaiyun.com/a15874647/article/details/6443636 信号灯,,,Semaphore类。。它所实现的功能就类似于公共厕所,,如果有10个人同时要去上这个厕所,而厕所只有5个原创 2011-05-24 22:58:00 · 970 阅读 · 0 评论 -
泛型编程》》》》》》》》》》》》》》
泛型,类型参数,,,,使得类可以参数化。。。不过泛型只是给编译器看的。。运行的时候没有任何类型信息了! 方便我们尽可能少去强制类型转换。。。。。使用不同参数化的某个类型的多个实例,,实际上用的是同一份字节码。。 所以我们可以通过反射绕过编译器的类型检测。。因为在运原创 2011-05-05 09:25:00 · 698 阅读 · 0 评论 -
java5线程并发库
Shawn 原创,转载请注明!原文地址:http://blog.youkuaiyun.com/a15874647/article/details/6440998 ThreadLocal的使用,,,实际上相当于维护了一个Map,其中以键值对的形式,存储了某一个数据被多个原创 2011-05-23 22:35:00 · 1236 阅读 · 0 评论 -
通过java枚举实现的单例jdbc连接与关闭
package shawn.test;import java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.原创 2011-05-02 17:26:00 · 1396 阅读 · 0 评论 -
网络编程基础知识
TCP/IP协议,,IP地址,4个字节表示;IPV4127.0.0.1回路IP,不经过网卡的特殊IP地址。PORT端口号,一个占用两个字节的整数,用于表示数据包该交给哪个网络程序。同样也要指定接受哪个端口号上的数据。一台计算机上不允许有两个相同端口号得应用程序。范原创 2011-05-01 10:52:00 · 1019 阅读 · 0 评论 -
jvm开发笔记5 - 虚拟机内存管理
一、 前言 ajvm是笔者正在开发中的一个java虚拟机, 想通过编写这个jvm帮助程序员了解jvm的具体实现细节, 它是国内第一个开源的java虚拟机项目:https://github.com/cloudsec/ajvm, 同时笔者把它的开发笔记也分享到了ata上。 在前面4篇笔记中, 已经实现了class文件加载器, 反汇编器,jvm的crash信息处理, 同时它已经能转载 2014-12-04 16:07:27 · 847 阅读 · 0 评论