Java学习
zhuhai__yizhi
这个作者很懒,什么都没留下…
展开
-
Java对象的引用
情形,实际中将数据存储在ArrayList里面了,原创 2014-11-16 10:09:15 · 496 阅读 · 0 评论 -
Java如何复制对象
假如说你想复制一个简单变量。很简单:[java] view plaincopyint apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。转载 2014-11-16 09:52:17 · 514 阅读 · 0 评论 -
Java 中的语法糖 (Syntactic Sugar)
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语。指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会;但是这种语法对语言的功能并没有影响。Java中的泛型,变长参数,自动拆箱/装箱,条件编译等都是,下面做简单的介绍和分析。泛型转载 2014-11-17 17:44:18 · 456 阅读 · 0 评论 -
java字符串链接的注意
代码如下:import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { List fileList = new ArrayList(); for (int i = 0; i < 5; i++) { int theM转载 2014-11-19 13:38:33 · 404 阅读 · 0 评论 -
Java7中的switch支持String的实现细节
在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,呼吁很久的String支持也终于被加上了。 例如,下面是一段switch中使用String的示例代码。 01public class Test {02转载 2014-11-30 17:31:38 · 689 阅读 · 0 评论 -
java多线程读写文件实例
Java多线程读文件:[java] view plaincopypackage com.myjava; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.转载 2014-11-30 16:22:40 · 1073 阅读 · 0 评论 -
Java并发编程:Lock
Java并发编程:LockJava并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那转载 2014-11-30 16:24:53 · 767 阅读 · 0 评论 -
HashMap 与 TreeMap的区别
HashMap 与 TreeMap的区别 HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的转载 2014-11-30 20:01:24 · 464 阅读 · 0 评论 -
Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象How to Iterate Over a Map in Java在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-ea转载 2014-11-30 23:58:36 · 496 阅读 · 0 评论 -
ArrayList的addAll方法使用注意
package com.robot.test;import java.util.ArrayList;public class TestCode { public static void main(String[] args) { ArrayList stuList = new ArrayList(); Student s1 = new Student(12, "jack");原创 2014-11-25 23:35:34 · 8732 阅读 · 0 评论 -
ArrayList的toArray
ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法:1.list.toArray();2.list.toArray(T[] a);对于第一个重载方法,是将list直接转为Object[] 数组;第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为与list内容相同的类型。 不明真像的同学喜欢转载 2014-12-02 20:27:44 · 415 阅读 · 0 评论 -
JavaBean 和 Map 之间互相转换
[java] view plaincopyimport java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java转载 2015-02-01 16:06:27 · 501 阅读 · 0 评论 -
javaBean与Map<String,Object>互转
1. 为什么要实现javaBean与Map相互转换?用过spring的都知道spring的MVC框架中有一个BaseCommandController对象,利用这个对象我们就可以很方便的将从客户端传递过来的参数封装到一个JavaBean对象中去,而不需要我们request.getParameter("name");bean.setName(name);了,从而也简化了不少的工作。如果大家用转载 2015-02-01 16:06:03 · 505 阅读 · 0 评论 -
Java系列笔记(2) - Java RTTI和反射机制
目录前言传统的RTTI反射反射的实现方式反射的性能反射与设计模式前言并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这就是RTTI(Runtime Type Information,运行时类型信息)。在java中,有两种RTTI的方式,一种是传统的,即假设在编译时已经知道了所有的类型;还有一种,是利用转载 2014-12-29 19:02:52 · 680 阅读 · 0 评论 -
instanceof运算符、Class的isInstance( )与isAssignableFrom
http://bbs.csdn.net/topics/300208631转载 2014-12-29 13:14:24 · 381 阅读 · 0 评论 -
Java 接口在编程中的作用是什么?
Java 接口在编程中的作用是什么?2010-04-18 19:31kingboy12345 | 来自手机知道 | 分类:JAVA相关 | 浏览2044次 | 该问题已经合并到>>刚学java 对接口的作用感到困惑,接口既不能定义方法体具体内容,又在继承后都被覆盖。多重继承这种空方法意义有多大?网上有人说在大型编程时才会体现接口的优越性,这优越性是什么?分享到:转载 2015-02-11 21:29:09 · 634 阅读 · 0 评论 -
面向对象设计原则六 - 针对接口编程,而不是针对实现编程
http://zjliu.iteye.com/blog/423222接口接口是一个对象中可以被另一个对象调用的一组方法一个对象可以有多个接口类型是一个对象的特殊接口不同的对象可以有相同的类型,一个对象可以有多种不同的类型一个对象只有通过它的接口才能被其他对象知晓接口是可插拔的关键实现继承和接口继承实现继承(类继承)------ 一个对象的实现定义在另一个对象的实转载 2015-02-11 22:30:44 · 635 阅读 · 0 评论 -
五大原则之----里氏替换原则(LSP)
阐述:子类型(subtype)必须能够替换掉它们的基类型(basetype) 先提出一个问题:正方形是不是一种特殊的长方形(IS - A关系)?先不要回答这个问题,看下面的分析。 理解:LSP原则的一个例子,假如有个people的基类,两个字类man类和woman类,都继承于people类。那么针对people类的任何操作,比如fun吃饭、fun睡觉、fun走路,对于man类和转载 2015-02-11 21:25:50 · 719 阅读 · 0 评论 -
Java动态代理一——动态类Proxy的使用
1.什么是动态代理?答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。2.为什么使用动态代理?答:因为动态代理可以对请求进行任何处理3.使用它有哪些好处?转载 2015-02-11 15:50:58 · 537 阅读 · 0 评论 -
Java注释@interface的用法【转】
java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。@Override,@Deprecated,@SuppressWarnings为常见的3个注解。注解相当于一种标记,在程序中加上了注解就等于为程序加上了某种标记,以后,JAVAC编译器,开发工具和其他程序可以用反射来了解你的类以及各种元素上有无任何标记,看你有什么标记转载 2015-02-12 13:34:38 · 378 阅读 · 0 评论 -
JUnit4的执行的一般流程
a)首先获得待测试类所对应的Class对象。b)然后通过该Class对象获得当前类中所有public方法所对应的Method数组。c)遍历Method数组,取得每一个Method对象。d)调用每个Method对象的isAnnotationPresent(Test.class)方法,判断该方法是否被Test注解所修饰。e)如果该方法返回true,那么调用method.invoke()转载 2015-02-12 13:36:36 · 505 阅读 · 0 评论 -
里氏替换原则
架构师之路之 里氏代换原则(Liskov Substitution Principle, LSP)1 什么是里氏代换原则 里氏代换原则是由麻省理工学院(MIT)计算机科学实验室的Liskov女士,在1987年的OOPSLA大会上发表的一篇文章《Data Abstraction and Hierarchy》里面提出来的,主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,转载 2015-02-11 21:26:54 · 527 阅读 · 0 评论 -
面向对象的设计原则五 - 依赖倒转原则
动机在一个应用程序中,我们有一些实现了基础的、主要的操作的底层类和一些封装了复杂逻辑的上层类。实现这种结构的很自然地方式就是,先编写底层类,完成后再编写复杂的上层类。因为上层类是由其他东西定义的,所以这看起来是一种很合理的方式。但是这不是一个灵活的设计,如果我们需要替换一个底层类时会发生什么? 让我们以经典的拷贝程序为例,它从键盘读取一些字符,然后把他们输出到打印设备上。包转载 2015-02-11 22:06:03 · 452 阅读 · 0 评论 -
面向接口编程详解(一)——思想基础
http://www.cnblogs.com/leoo2sk/archive/2008/04/10/1146447.html我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到“面向接口编程”这个短语,那么它是什么意思?有什么思想内涵?和面向对转载 2015-02-11 21:25:23 · 439 阅读 · 0 评论 -
面向对象设计的六大原则简介
OOD基本上有6大原则,而实际上都是互补的,也就是说一些原则需要利用另一些原则来实现自己。6大原则如下:1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制。这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的。其他的原则也是对它的实现提供了路径。2) Liskov转载 2015-02-11 22:52:07 · 441 阅读 · 0 评论 -
java.util.ConcurrentModificationException 解决办法
在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除。则使用会报以下异常:java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)转载 2015-03-15 15:15:10 · 1230 阅读 · 0 评论 -
Java中自定义枚举(Enum)项的值及int和Enum的互相转换
C++中定义枚举的时候可以直接指定枚举项的值,如:"enum {MAX_LENGTH = 255};"。其实Java也可以,今天学到了这种语法。C++的int和枚举互相转换使用强制类型转换即可,但在Java中从int构造Enum需要自己实现(不过如果枚举值从0开始递增就简单了,参考第二段代码)。自定义枚举值代码如下:==============================代码的分割线===转载 2015-03-25 20:42:17 · 581 阅读 · 0 评论 -
java中byte, int的转换
最近在做些与编解码相关的事情,又遇到了byte和int的转换,看着那些关于反码、补码的说明依旧头疼,还是记下些实用的方法吧。int -> byte可以直接使用强制类型转换: byte b = (byte) aInt;这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了。对于通过InputStream.read()获取的int,可采用这个方法将值还原。转载 2015-03-05 17:56:36 · 335 阅读 · 0 评论 -
Java提高
http://blog.csdn.net/column/details/javaquality.html?&page=2http://blog.csdn.net/column/details/javaquality.html?&page=1转载 2015-03-26 17:04:19 · 443 阅读 · 0 评论 -
Java HashMap 初始化的另一种方式
如果你接触过不同的语言,从语法和代码层面来说,Java 是一种不折不扣的“臃肿、啰嗦”的语言,从另一方面来说这种臃肿和啰嗦也体现了它严谨的一面,作为适合构建大型、复杂项目的理由之一。1、HashMap 初始化的文艺写法HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。普通青年一般会这么初始化:HashMap map = new HashMa转载 2015-03-28 09:14:36 · 1517 阅读 · 0 评论 -
java程序获取jdk版本等信息
public class Test { public static void main(String[] args) { System.out.println(System.getProperty("user.home")); System.out.println(System.getProperty("java.version")); System.out.println(Syst原创 2015-03-28 10:04:02 · 6769 阅读 · 0 评论 -
Java Thread问题集之Thread.stop()篇
为什么不能使用Thread.stop()方法?从SUN的官方文档可以得知,调用Thread.stop()方法是不安全的,这是因为当调用Thread.stop()方法时,会发生下面两件事:1. 即刻抛出ThreadDeath异常,在线程的run()方法内,任何一点都有可能抛出ThreadDeath Error,包括在catch或finally语句中。2. 释放该线程所持有转载 2015-03-23 13:37:22 · 1045 阅读 · 0 评论 -
同步与异步,阻塞与非阻塞
“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调转载 2015-04-02 11:15:15 · 452 阅读 · 0 评论 -
JDK1.7中的try catch新的处理方式
/** * JDK7出现了一个新的异常处理方案: * try { * * } catch (异常1 | 异常2 ... 变量) { * * } * * 注意:这个方法虽然简洁,但是也不够好。 * A:处理方式是一致的。(实际开发中,好多时候可能针对同类型的问题,给出同一个处理) * B:多个异常间必须是平级关系。 */public class Test {转载 2015-03-24 11:16:26 · 2778 阅读 · 0 评论 -
java并发学习博客
http://www.blogjava.net/xylz/category/45607.html原创 2015-04-01 19:34:18 · 455 阅读 · 0 评论 -
try finally与return的执行顺序注意
/** * 如果catch里面有return语句,请问finally里面的代码还会执行吗? * 如果会,请问是在return前,还是return后。 * 会执行,前。 * * 准确的说,应该是在中间。 */public class Test {public static void main(String[] args) {System.out.println(转载 2015-03-24 11:03:12 · 476 阅读 · 0 评论 -
【Java之对象清理】finalize()的用途
Java允许在类中定义一个名为finalize()的方法。它的工作原理是:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法。并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。关于垃圾回收,有三点需要记住: 1、对象可能不被垃圾回收。只要程序没有濒临存储空间用完的那一刻,对象占用的空间就总也得不到释放。 2、垃圾回收并不等于“析构转载 2015-03-24 10:55:32 · 472 阅读 · 0 评论 -
java.util.ConcurrentModificationException 出现的原因和解决办法
用iterator遍历集合时碰到java.util.ConcurrentModificationException这个异常,下面以List为例来解释为什么会报java.util.ConcurrentModificationException这个异常,代码如下: Java代码 public static void main(String[] args) { Li转载 2015-04-03 13:46:51 · 850 阅读 · 0 评论 -
HashMap和Hashtable的区别
导读: 1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。Hash转载 2015-04-01 19:32:25 · 412 阅读 · 0 评论 -
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
1、什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类。 2、为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implementation)。因此,inner class不受限于outer class是否已继承自某一实现类。如果少了inner class所提供的“继转载 2015-04-01 19:31:42 · 590 阅读 · 0 评论