
java
文章平均质量分 74
Frimish
这个作者很懒,什么都没留下…
展开
-
java深度复制和浅度复制
浅度拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制。 深度拷贝:对象,对象内部的引用均复制。具体我们通过例子分析一下: class Professor implements Cloneable//所有要进行克隆的对象所属的类必须实现java.lang.Cloneable接口{ private String pname;private i原创 2015-09-11 14:09:47 · 645 阅读 · 0 评论 -
ArrayList、LinkedList、Vector区别
1 ArrayList底层是采用数组实现的(并且改数组的类型是Object类型的)2 如果是jdk6的话,采用Array.of()方法来生成一个新的数组,如果是jdk5.0的话,使用的是System.arraycopy方法(将数组拷贝)3 List list = new ArrayList();时,底层会生成一个长度为10的数组来存放对象,如果预先知道list会存放多少个对象的话,最好通过原创 2015-10-09 10:07:04 · 530 阅读 · 0 评论 -
java创建线程的两种方法比较
在Java中创建线程有两种方法:继承Thread类和实现Runnable接口。一、继承Thread类创建线程类(Thread类已经实现了 Runnable接口)1、Thread类的构造方法有8个,但常用的只有4个,分别为:Thread类中的两个最主要的方法:(1)run()—包含线程运行时所执行的代码,即线程需要完成的任务,是线程执行体。(2)start()—用于启动线程。转载 2015-09-21 15:21:14 · 555 阅读 · 0 评论 -
静态类、静态变量、静态方法
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明。(1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 非静态对象 拥有属性:转载 2015-09-21 15:37:32 · 582 阅读 · 0 评论 -
NIO与IO
下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。复制代码代码如下:IO NIO面向流 面向缓冲阻塞IO 非阻塞IO无 选择器面向流与面向缓冲Java NIO和IO之间第一个最大的区别是,IO是面向流转载 2016-01-04 16:45:17 · 643 阅读 · 0 评论 -
JAVA 中BIO,NIO,AIO的理解
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 什么是异步阻塞? 8 什么是异步非阻塞? 散仙不才,在查了一部分资料后,愿试着以通俗易懂的方式解释下这几个名词。如有不足之处,还望告知。原创 2015-12-23 10:47:29 · 557 阅读 · 0 评论 -
synchronized与volatile异同
volatile关键字有什么用? 恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码: int i1; int geti1() {return i1;} volatile int i2; int geti2() {return i2;} int i3; synch原创 2015-12-23 16:01:29 · 546 阅读 · 0 评论 -
Java和C/C++的差异总结
总结一下Java的小知识,只是想稍微提醒一下自己这些基础的东西,放在这里,随时可以阅览和添加一下,以免走错了方向。1.面向对象程序设计面向对象程序设计语言可以直观的反映客观世界的真实表象,使软件开发人员可运用人类认识事物所采用的一般思维方式来进行软件开发,与自然语言差距最小,是当今软件开发与应用的主流技术。Java是纯面向对象的编程语言。2.几个概念a.JavaAp原创 2015-12-08 15:17:10 · 2381 阅读 · 0 评论 -
java常见的异常
1. 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.2. 绿色的异常是运行时异常(runtime exceptions),需原创 2015-12-24 17:34:25 · 794 阅读 · 0 评论 -
深入理解Java的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅解转载 2015-12-25 17:36:27 · 653 阅读 · 0 评论 -
HashMap和Hashtable的区别
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java原创 2015-10-09 13:33:55 · 515 阅读 · 0 评论 -
==与equals
java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。 ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。 ==比较的是2个对象的地址,而equ原创 2015-10-10 10:59:18 · 567 阅读 · 0 评论 -
java字符串处理总结
Ÿ substring()它有两种形式,第一种是:String substring(int startIndex)第二种是:String substring(int startIndex,int endIndex)Ÿ concat()连接两个字符串Ÿ replace()替换它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方原创 2015-09-11 16:50:39 · 673 阅读 · 0 评论 -
Switch能否用string做参数?
在开发java程序的过程中,我们遇到了条件判断首选就是switch,但是java中的switch功能不支持字符串作为条件。这时我们该怎么办呢? ——使用枚举。一、枚举简单了解1、enum是一种数据类型。特殊:是指在枚举中将变量的值一一列出来,变量的值只限于列举出来的值的范围内。特殊到一般化:enmu 就是我们根据自己业务需要定义的同“String,int”相同的数据类型原创 2015-09-29 10:05:20 · 7157 阅读 · 0 评论 -
java中公共类object的方法总结
构造方法摘要Object() 方法摘要protected Object clone() 创建并返回此对象的一个副本。boolean equals(Object obj) 指示某个其他对象是否与此对象“相等”。protected void finalize() 当垃圾回收器确定不存在对原创 2015-09-29 10:28:15 · 984 阅读 · 0 评论 -
随机数生成算法
介绍一种比较流行的 随机数生成算法“线性同余”算法,其原理是:选取足够大的正整数M和任意自然数a、b和初始值R0,然后利用递推公式:R0 = 指定值, Rn = (a*Rn-1+b)% Mpublic class TestLCG{public static void main(String args[]){test(32,5,8,7);}public static原创 2015-09-16 14:03:12 · 1773 阅读 · 0 评论 -
java四中引用
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 1.强引用 本章前文介绍的引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,原创 2015-10-08 10:40:34 · 1306 阅读 · 0 评论 -
浅谈Java中的hashcode方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:1public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的原创 2015-10-08 14:07:11 · 561 阅读 · 0 评论 -
StringBuilder、StringBuffer和String三者的联系和区别
StringBuilder、StringBuffer和String三者的联系和区别 1. String 类 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。 String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但原创 2015-10-09 11:19:38 · 626 阅读 · 0 评论 -
Java中HashMap,LinkedHashMap,TreeMap的区别
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMapMap主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取原创 2015-10-09 15:01:15 · 653 阅读 · 0 评论 -
java中List、Map、Set、Collection、Stack、Queue等的使用
java中这几个东西是比较常用的,虽然我用的不多,也正是因为用的不多,所以我一直搞不清楚他们之间的具体用法以及相互之间的关系,现在特单独作为一个东西来总结一下。 本文参考一下资料:1.《java编程思想》一书第11章2.http://blog.sina.com.cn/s/blog_a345a8960101k9vx.html3.http://f51889920原创 2015-10-09 11:43:41 · 1195 阅读 · 0 评论 -
Java中堆与栈的区别
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的原创 2015-12-09 11:12:37 · 540 阅读 · 0 评论