
Java
哈希Map
这个作者很懒,什么都没留下…
展开
-
【Java基础】——内存结构
关于Java的内存结构网上没有统一的说法,但是内容大致相同,核心说法一样就没什么问题了。Java的内存划分为五个区:1. Heap(堆):实例分配的地方,通过-Xms与-Xmx来设置2. MethodArea(方法区域):类的信息及静态变量。 对应是Permanet Generation, 通过-XX:PermSize来设置3. JavaStack(java的栈):虚拟机只会直接对原创 2012-05-28 12:18:50 · 773 阅读 · 0 评论 -
Java的Clone简要
对于一个普通的对象来说,如果实现Cloneable接口,并重写clone方法可以实现对象的深拷贝。但是对于List/Set等集合来说不管是用集合的clone方法还是对象的clone方法都是浅拷贝,即指针的引用,如果要实现java集合的深拷贝必须将对象实现Serializable接口后写一个深拷贝方法才行。import java.io.ByteArrayInputStream;import原创 2014-11-07 20:40:40 · 1067 阅读 · 0 评论 -
Java中文简单排序
为啥说是简单排序呢,因为这个方法只支持中文排序,不支持中英文混合排序。如果要实现中英文混合排序需要引入pinyin4j-2.5.0.jarArrayList list = new ArrayList(); list.add("中国"); list.add("加拿大"); list.add("5577.com"); list.add原创 2013-11-22 09:43:14 · 1487 阅读 · 0 评论 -
呵呵,一个你可能从没关心过得关于HashMap或者ArrayList的小故事
这个故事是这样的:Java的Runtime类中有三个方法:freeMemory(),totalMemory()和maxMemory()这三个方法代表的意思是:当前应用程序申请的可用内存还有多少当前应用程序已经申请的内存有多少当前应用程序可申请的总内存有多少我们创建一个包含一百万条Integer对象的HashMapHashMap hm1 = new HashMap;原创 2013-11-21 14:55:43 · 1324 阅读 · 0 评论 -
【Java基础】JAVA中重写equals()方法为什么要重写hashcode()方法?
http://blog.youkuaiyun.com/lisongahy/article/details/7482812object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true;注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode转载 2013-10-12 10:53:34 · 1653 阅读 · 0 评论 -
Java Threads 多线程10分钟参考手册
http://blog.youkuaiyun.com/ring0hx/article/details/68585821 同步 如何同步多个线程对共享资源的访问是多线程编程中最基本的问题之一。当多个线程并发访问共享数据时会出现数据处于计算中间状态或者不一致的问题,从而影响到程序的正确运行。我们通常把这种情况叫做竞争条件(race co转载 2013-02-06 09:44:40 · 1015 阅读 · 0 评论 -
【Java基础】——之线程同步
我们先来看一段代码:import java.util.ArrayList;public class MyThreadTest { private ArrayList list = new ArrayList(); private byte[] lock = new byte[0]; private void addData() { list.clear(); for (原创 2012-05-23 16:18:15 · 760 阅读 · 0 评论 -
Java多线程顺序执行
可恶的Java多线程,一直没搞懂同步的作用!一直以为同步的时候只要锁住对象就能顺序执行了:public class Test { final static byte[] b = new byte[0]; public static void main(String[] args) { Test t = new Test(); t.thr原创 2012-07-11 09:09:34 · 12749 阅读 · 2 评论 -
Java IO流读取文件
一、使用字符流,读取和存储纯文本文件。 存储文件,也就是像一个文件里写内容,既然是写,那就需要使用输出流。而且我们写的是纯文本文件,所以这里使用字符流来操作,java api提供给我们FileWriter这么一个类,我们来试试:(读取文件同理使用FileReader类) [java] view plaincopy转载 2012-08-08 16:03:54 · 22265 阅读 · 1 评论 -
Java 静态代码块和Main函数的执行顺序
public class C { static { System.out.println("111"); } public static void main(String[] args) { System.out.println("222"); }}这个代码输出什么?“111”,“222”public class C { public static voi原创 2012-07-11 20:43:26 · 2052 阅读 · 1 评论 -
追MM“23式”—— GOF 23种设计模式
http://blog.youkuaiyun.com/thl789/article/details/185573追MM“23式” —— GOF 23种设计模式创建型模式 1、FACTORY 2、BUILDER 3、FACTORY METHOD 4、PROTOTYPE 5、SINGLETON结构型模式 6、ADAPT转载 2012-07-09 13:09:18 · 1100 阅读 · 0 评论 -
【Java基础】——之抽象类(Abstract)与接口(Interface)
本文旨在讨论什么时候使用抽象类,什么时候使用接口。抽象类(Abstract):我们知道Java面向对象编程中有继承的概念,当有的父类我们不希望可以创建其实例的时候就要用到抽象类。比如三角形、圆形、正方形的的父类都为“形状”,我们可以创建三角形、圆形和正方形的实例,但是不希望创建“形状”的实例,因为形状是不存在的,这个时候就要用到抽象的方法定义“形状”。abstract cl原创 2012-05-23 13:33:02 · 1336 阅读 · 0 评论 -
【Java基础】——IO:概念原理
Java IO学习笔记:概念与原理 一、概念 Java中对文件的操作是以流的方式进行的。流是Java内存中的一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分。 二、分类 流的分类,Java的流分类比较丰转载 2012-06-11 23:19:21 · 734 阅读 · 0 评论 -
【Java基础】——之Final
我们都知道final这个关键字代表“不可修改”的意思,但是不同的“不能修改”有不同的含义。final必须显示指定初始值,否则其值就为null。其赋值的过程都是放在静态初始化块内完成的(注意:他的优先级高于成员变量在构造函数中赋值)。1.final的变量:通常final成员变量表明这个变量只能被赋值一次,而不是说他是静态常量。比如说:final int i = 1;原创 2012-05-23 12:36:52 · 871 阅读 · 0 评论 -
【Java基础】——父类构造器
当创建任何Java对象时,程序总会先依次调用每个父类非静态初始化块、父类构造器(总是从Object开始,默认调用无参构造器)执行初始化,最后才调用本类的非静态初始化块、构造器执行初始化。如下代码:class A{ { printf("A"); } public A(){ printf("A()"); }}class B原创 2012-05-31 23:47:04 · 740 阅读 · 0 评论 -
【Java基础】——变量
Java变量可分为局部变量和成员变量,其中局部变量又可分为三类:形参、方法内局部变量、代码块局部变量。类体内定义的变量称为成员变量(Field),没有使用static修饰的称为非静态变量或实例变量;如果使用static修饰就称为静态变量或类变量。对于实例变量而言,该类每创建一次实例,就需要为实例变量分配一块内存空间。实例变量初始化内存分配:我们来看下面这段代码pub原创 2012-05-31 22:16:47 · 719 阅读 · 0 评论 -
【Java基础】——数组
当当买的新书今天到了,叫《疯狂Java突破程序员基本功的16课》。我记得罗永浩好像说过什么打着几天速成/疯狂/轻松之类旗号的都不靠谱,其实我也是抱着不靠谱的心态买的这书。但是今天到手后看来……还是那个事,比较适合我这种基本功薄弱的菜鸟。虽说我做了快3年的Java,但是说实话我根本就没有学过Java,现在用的所有开发技巧都是早年学C语言时学的(现在C语言压根就不会了。。。)。所以这本书比较补内功心法原创 2012-05-29 15:19:28 · 1073 阅读 · 0 评论 -
Java容器总结
http://www.bysocket.com/?p=162#0-tsina-1-86659-397232819ff9a47a7b7e80a40613cfe1Vector和ArrayList 1,vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高。转载 2015-03-24 10:23:53 · 865 阅读 · 0 评论