Java
文章平均质量分 68
努力只为接近梦想
这个作者很懒,什么都没留下…
展开
-
Java程序内存分析
简单通俗的讲,一个完整的Java程序运行过程会涉及以下内存区域:l 寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。l 栈:保存局部变量的值,包括:1.用来保存基本数据类型的值;2.保存类的实例,即堆区对象的引用(指针)。也可以用来保存加载方法时的帧。l 堆:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包转载 2015-05-24 14:23:41 · 942 阅读 · 0 评论 -
Java设计模式—观察者模式
观察者模式 Observer 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。 观察者模式的组成 抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现原创 2015-08-04 09:21:37 · 487 阅读 · 0 评论 -
UDP编程
TCP编程:Socket、ServerSocketUDP编程:DatagramPacket、DatagramSocket简而言之,UDP协议发送数据报包,不管你有没有接收到,不可靠的传输,只管发过去而已服务端:public class Server { public static void main(String[] args) throws IOException {原创 2015-07-02 10:17:50 · 749 阅读 · 0 评论 -
Java设计模式—适配器模式
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。 适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。以下是示例代码:/** * 适配器模式 * @author Admin * */public class Adapter { public static void start(powerA p){ //只接受原创 2015-07-31 16:47:15 · 498 阅读 · 0 评论 -
从源码来理解ArrayList和LinkedList区别
从源码理解ArrayList和LinkedList区别ArrayListArrayList默认容量为10,实质是一个数组用于存放元素,size表示ArrayList所包含的元素个数。ArrayList的3个构造函数,第一个构造函数指定容量,第二个构造函数默认为一个空数组,第三个构造函数是从集合c转变为Arraylist的数组a原创 2015-08-11 23:56:27 · 1023 阅读 · 0 评论 -
Java网络请求
HttpURLConnection是java提供的用于网络访问的类。get请求方式:public class HttpURLGET { //HttpURLConnection类获取服务器一张图片 public static void main(String[] args) { // TODO Auto-generated method stub try { URL原创 2015-07-18 14:51:47 · 1236 阅读 · 0 评论 -
从源码来理解HashMap和HashSet
HashMap类HashMap 内有一个table数组存放,用关键字transient,则说明HashMap的table数组值是存放在内存中,不作为序列化数据保存。put函数如果key==null,注意:table是一个数组,而这个数组下每个元素的下面其实是个链表,都是通过hash(key)得到相同k位置(table[k])空值统一放在table原创 2015-08-09 09:17:04 · 611 阅读 · 0 评论 -
Java设计模式—单例模式和模板模式
1.单例模式方法:类构造方法私有的,类里面有个静态类对象用来保存这个类对象,并且这个类提供获取该类对象的静态方法。/** * 单例设计模式 * @author Admin * */public class Design1 { private String name; private static Design1 d; private Design1(String name){原创 2015-07-28 19:42:47 · 722 阅读 · 0 评论 -
Java设计模式—工厂设计模式
4.工厂设计模式(降低耦合,通过接口或者工厂类来实现)耦合性:粘度强(依耐性) Person p = new Person(); //耦合性强 Man p = new Person(); //耦合性弱,Man是接口或其他,Person实现这个接口简单工厂模式是有一个工厂对象决定创建哪一种产品类的实例。简单工厂模式是工厂模式家族中最简原创 2015-07-27 10:14:50 · 501 阅读 · 0 评论 -
TCP编程,Socket通讯
网络编程分两种,一种是TCP编程,另一种是UDP编程(点击打开链接)。而本文先讲述简单的TCP编程,Socket套接字连接通讯,实现简单的客户端与服务器之间的信息传输。下面是客户端与服务器之间简单的数据传输(单对单):注意:服务端先启动,然后再启动客户端。客户端:public class C { public static void main(String[] arg原创 2015-07-26 10:07:49 · 607 阅读 · 0 评论 -
Java 设计模式—装饰者模式
在Java编程语言中,嵌套了很多设计模式的思想,例如IO流中的缓冲流就使用到下面要介绍的装饰者设计模式。示例代码: * 抽象构件角色:定义一个抽象接口,来规范准备附加功能的类 * @author Admin * */public interface Drink { //被装饰者的基类 public String description(); pu原创 2015-07-26 20:35:44 · 511 阅读 · 0 评论 -
ClassLoader自我总结
jdk下的解释ClassLoader: (1)类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称的“类文件”。 (2)每个 Class 对象都包含一个对定义它的 ClassLoader 的引用。 (3)数组类的 Class 对象不是由类原创 2015-06-08 16:06:25 · 378 阅读 · 0 评论 -
java注释
java用 @interface Annotation{ } 定义一个注解类。@Override,@Deprecated,@SuppressWarnings为常见的3个注解。注解相当于一种标记,在程序中加上了注解就等于为程序加上了某种标记,以后,JAVAC编译器,开发工具和其他程序可以用反射来了解你的类以及各种元素上有无任何标记,看你有什么标记,就去干相应的事。 注原创 2015-06-17 13:45:51 · 352 阅读 · 0 评论 -
JSON数据的生成与解析
JSON数据的生成与解析,首先先到网上下载一个json jar包,我用的是org.json示例代码:package json;import org.json.JSONArray;import org.json.JSONObject;public class Main { /** * 生成Json数据 */ public static String create原创 2015-07-01 21:32:49 · 2024 阅读 · 0 评论 -
SAX解析XML
package com.huang;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFac原创 2015-06-30 21:58:28 · 801 阅读 · 0 评论 -
DOM解析XML
DOM的文档驱动处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成 DOM树上的每个Node对象优点是:可以对XML文档进行增删改查的复杂操作,可以随时按照节点间的关系访问数据缺点:受内存容量限制,不能处理大的文档,由于没有索引机制,处理效率较低DOM(文档对象模型),为XML文档的解析定义了一组接口,解析器读入整个文档,然后构造一个驻留内存原创 2015-06-30 21:54:18 · 535 阅读 · 0 评论 -
java ClassLoader详解
JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined class loader)。 一. ClassLoader基本概念1.ClassLoader分类类装载器是用来把类(class)装载进JVM的。JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined转载 2015-06-08 00:05:34 · 467 阅读 · 0 评论 -
volatile含义
java中volatile关键字的含义在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通转载 2015-06-04 09:52:53 · 409 阅读 · 0 评论 -
Java垃圾收集和Android垃圾收集
Java垃圾收集和Android垃圾收集其实本质上差不多一样。下面就来谈谈Java垃圾收集垃圾收集对象:堆里的对象,因为栈中的基本数据类型用完后会及时释放掉存储空间Java虚拟机采用分代收集,将堆中对象分为新生代和老生代,在新生代收集的时候只需要扫描新生代,而不需要扫描老生代。垃圾收集在收集一个对象时会判断是否引用指向对象,在Java中的引用主要有4种:分别是Strong refe原创 2015-09-06 11:13:11 · 522 阅读 · 0 评论