Java Base
文章平均质量分 71
iteye_6153
这个作者很懒,什么都没留下…
展开
-
Java 对象转化为Map
下面将会使用内省和反射机制来实现JavaBean转化为Map,当然也是可以相互转化。/** * 对象转化成Map对象 * @param obj * @return */ private Map<String, Object> transBean2Map(Object obj) { if(obj == null){ return null...原创 2017-01-25 09:37:42 · 264 阅读 · 0 评论 -
Java的HashMap和HashTable
1. HashMap1) hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列”),如下图示: 当我们往hashmap中put元素的时候,先根据key的hash值得到这个元素在数组中的位置(即下标),然后就可以把这个元素放到对应的位置中了。如果这个元素所在的位子上已经存放有其他元素了,那么在同一个位子上的元素将以...原创 2016-05-19 23:21:28 · 93 阅读 · 0 评论 -
Java技术中的三大特性
1.虚拟机 Java虚拟机JVM(Java Virtual Machine)在Java编程里面具有非常重要的地位,约相当于前面学到的Java运行环境,虚拟机的基本功能如下:(1):通过ClassLoader寻找和装载class文件(2...原创 2016-05-15 14:46:12 · 98 阅读 · 0 评论 -
java中多种方式解析xml
第一种:DOM。DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。DOM接口提供了...原创 2016-05-02 09:04:00 · 68 阅读 · 0 评论 -
cmd中java的编译命令——java和javac、javap
最近重新复习了一下java基础,这里便讲讲对于一个类文件如何编译、运行、反编译的。也让自己加深一下印象 如题,首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行。进入如图所示的画面:可知,当前默认目录为C盘Users文件夹下的Administrator文件夹。一般而言,我们习惯改变当前目录。由于windows有磁盘分区,若要跳到其...原创 2016-04-30 09:35:21 · 186 阅读 · 0 评论 -
Java中locks与synchronized及其异同
关键字:synchronized、java.util.concurrent.locks.Lock、同步、并发、锁一、【引言】JDK1.5之前,实现同步主要是使用synchronized,而在JDK1.5中新增了java.util.concurrent包及其两个子包locks和atomic,其中子包locks中定义了系列关于锁的抽象的类。本文主要介绍java.util.concurre...原创 2016-04-27 21:11:08 · 86 阅读 · 0 评论 -
Java中synchronized 修饰在static方法和非static方法的区别
【问题描述】关于Java中synchronized 用在实例方法和对象方法上面的区别【问题分析】大家都知道,在Java中,synchronized 是用来表示同步的,我们可以synchronized 来修饰一个方法(实例方法和类方法---注:不知道这样叫准确不准确,大家理解我的意识就行了)。也可以synchronized 来修饰方法里面的一个语句块。修饰实例方法:public s...原创 2016-04-27 21:05:39 · 188 阅读 · 0 评论 -
Java中的断言(assert)
一、语法形式: Java2在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion),它的语法形式有如下所示的两种形式:1、assert condition; 这里condition是一个必须为真(true)的表达式。如果表达式的结果为true,那么断言为真,并且无任何行动如果表达式为false,则断言失败,则会抛出一个AssertionEr...原创 2016-04-27 20:59:39 · 95 阅读 · 0 评论 -
Java中抽象类与接口
JAVA接口和抽象类的区别是什么? Java提供和支持创建抽象类和接口。它们的实现由共同点,不同点在于:接口中的所有的方法隐含的都是抽象的。而抽象类中则可以同时包含抽象和非抽象的方法。类可以实现多个接口,但只能继承一个抽象类。类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,该情况下的类也必须得声明成抽象的...原创 2016-04-24 13:07:33 · 78 阅读 · 0 评论 -
JVM中类加载器的父委托机制
类加载器 类加载器用来把类加载到Java虚拟机中。 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap) 扩展类加载器(Extension) 系统类加载器(System) 2.用户自定义的类加载器: java.lang.ClassLoader的子类,用户可以定制类的加载方式。...原创 2016-05-19 23:25:09 · 81 阅读 · 0 评论 -
Java中的HashMap的2种遍历方式比较
首先我们准备数据,准备一个mapMap<String, String> map = new HashMap<String, String>(); for (int i = 0; i < 10; i++) { map.put(i + "", "value" + i); } 然后我们采用传说中的key遍历: 步骤:先弄成key s...原创 2016-05-19 23:36:42 · 110 阅读 · 0 评论 -
HashSet、LinkedHashSet、TreeSet的区别
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代; TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。package com.test; import java.util.HashSe...原创 2016-05-22 17:13:16 · 262 阅读 · 0 评论 -
Java 编写过滤手机号码或者固定电话的工具类
以下是分享自己编写的用于过滤手机号码、固定电话、黑名单的工具类TelCheckUtils,import java.util.HashSet;import java.util.Set;import java.util.regex.Pattern;public class TelCheckUtils { public static final Set<Strin...原创 2017-01-25 09:33:22 · 577 阅读 · 0 评论 -
Java关于线程池的使用
一、四种线程池创建的方式Java通过Executors提供四种线程池,分别为:newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时...原创 2017-01-13 12:16:49 · 124 阅读 · 0 评论 -
Java中HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。 ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable。 ...原创 2016-06-22 17:41:04 · 223 阅读 · 0 评论 -
Java7中的try-with-resources
首先,我们看下面的代码。BufferedReader br = null;try { br = new BufferedReader(new FileReader("test.txt")); br.readLine();} catch (Exception e) { e.printStackTrace();} finally { if (...原创 2016-06-22 17:37:59 · 137 阅读 · 0 评论 -
java中比较两个日期Date的大小
第一种方式:import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;/**** @author hp*/public class test { public static void main(String args[]) { ...原创 2016-06-13 15:21:25 · 2797 阅读 · 0 评论 -
java、javaw和javaws的区别
java、javaw和javaws的区别:首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到。通常 我们执行一些小的java程序的时候会有 java.exe进程在运行。javaw.exe对于我们也比较特殊,我们也能够通过任务管理器看到javaw.exe进程的运行。javaws通常web开启...原创 2016-05-28 11:52:25 · 404 阅读 · 0 评论 -
Java中的网络编程
一、网络通讯方式 在现有的网络中,网络通讯的方式主要有两种: 1.TCP(传输控制协议)方式 2.UDP(用户数据报协议)方式 为了方便理解这两种方式,还是先来看一个例子。大家使用手机时,向别人传递信息时有两种方式:拨打电话和发送短信。使用拨打电话的方式可以保证将信息传递给别人,因为别人接听电话时本身就确认接收到了该信息。而发送短信的方式价格低廉,使用方...原创 2016-05-28 08:55:45 · 83 阅读 · 0 评论 -
Java中的动态代理(jdk和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种...原创 2016-05-22 20:51:40 · 70 阅读 · 0 评论 -
Java中String、StringBuffer、StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[];...原创 2016-04-23 21:28:54 · 59 阅读 · 0 评论 -
JAVA的整型与字符串相互转换
1.如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 D...原创 2016-04-09 08:26:48 · 117 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 synchronized同步块 和 volatile关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上sync...原创 2016-02-22 10:27:19 · 73 阅读 · 0 评论 -
Java中class的修饰及成员变量的修饰
Java抽象类的构造方法和普通类的构造方法一样都是用来初始化类只是抽象类的构造方法不能直接调用,因为抽象类不能实现实例但是一旦一个普通类继承了抽象类,便也可以在构造函数中调用其抽象类的构造函数,也可以使用其方法可以理解为:抽象类就是一个不能实例化的类,不过如果方法加了abstract那么就必须在子类里面重写了类的修饰符整合一.类类的修饰符:Public : 可以在其他任何类中使用,默认...原创 2016-02-21 09:39:56 · 265 阅读 · 0 评论 -
Java类中的权限修饰符
public:允许所有外部类访问使用publicprotected:允许子类和同包类访问使用protectedprivate:只能自己访问使用private权限排序:访问权限修饰符权限从高到低排列是public,protected,friendly,private。 1.私有权限(private)private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内...原创 2016-02-21 09:39:34 · 134 阅读 · 0 评论 -
java树的遍历
java二叉树的遍历算法:http://blog.sina.com.cn/s/blog_70600f720100ujnp.html原创 2016-02-21 09:39:18 · 78 阅读 · 0 评论 -
OOP三大特性及几大设计原则
封装:1.隐藏实现细节;2.恰当地公开接口;3.将接口和实现分开,增强可维护性;(实现细节改变时,使用该类的客户端程序不需要改变)继承:1.描述联结类的层次模型;2.通过抽象,表达共性,实现类的重用;3.通过子类增加方法和属性以及重写方法,表达差异性;多态:1.屏蔽子类的差异性,针对共性/接口编程;(向上转型)2.增强可扩展性; 相关设计原则(设计模式一般遵守...原创 2016-02-21 09:38:59 · 245 阅读 · 0 评论 -
Java中的static
在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。” 简而言之就是: 方便在没有创建对象的情况下来进行调用(方法/变量)。 很显然,被static关键字修饰的方法...原创 2016-02-20 11:13:44 · 79 阅读 · 0 评论 -
java的守护线程与非守护线程
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程:后台线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的...原创 2016-02-20 11:13:32 · 111 阅读 · 0 评论 -
Java的部分问题和小结
2015/9/6ThreadLocal:该类提供了线程局部变量,这样可以生成对每个线程唯一的局部标识符。 2015/9/18 1.乱码问题: js:xdata = encodeURI(encodeURI(xdata)); java:fUrl = URLDecoder.decode(URLDecoder.decode(fUrl,"utf-8"),"utf-8"); 2.数据库...原创 2016-02-18 08:40:52 · 108 阅读 · 0 评论 -
详解java.util.Scanner
java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地。一、扫描控制台输入 这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了。当通过new Scanner(System.in)创建一个Scanner,控制台会...原创 2016-02-22 10:31:25 · 114 阅读 · 0 评论 -
Java中File类创建文件
只需要调用该类的一个方法createNewFile(),但是在实际操作中需要注意一些事项,如判断文件是否存在,以及如何向新建文件中写入数据等。import java.io.*;public class CreateNewFile{ //该方法用于创建文件,参数分别是文件路径和文件名、文件内容,如:myfile.doc HelloJava! public void create...原创 2016-03-15 22:14:20 · 733 阅读 · 0 评论 -
Java中使用File类删除文件夹和文件
删除工具类:import java.io.File; public class DeleteAll{ public static void deleteAll(File file){ if(file.isFile() || file.list().length ==0){ file.delete(); }else{ ...原创 2016-03-15 22:53:06 · 347 阅读 · 0 评论 -
JAVA中Stack和Heap的区别
1.Java中对象都是分配在heap(堆)中。从heap中分配内存所消耗的时间远远大于从stack产生存储空间所需的时间。 (1)每个应用程序运行时,都有属于自己的一段内存空间,用于存放临时变量、参数传递、函数调用时的PC值的保存。这叫stack。 (2)所有的应用可以从一个系统共用的空间中申请供自己使用的内存,这个共用的空间叫heap。 (3)stack中的对象或变量只要定义好就可使用了,...原创 2016-04-06 23:03:23 · 78 阅读 · 0 评论 -
java中集合的遍历与增强for循环的使用
java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。 许多情况需要我们遍历出集合中的元素,并做相应的处理。 下面对各种类型的集合的遍历做一些总结,关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方...原创 2016-04-05 21:20:50 · 83 阅读 · 0 评论 -
Junit使用教程
Junit目前在一些大的公司或者相对规范的软件中使用的比较多,相当多的小公司并没有把单元测试看的太重要。在大点的公司开发人员每天上班后,第一件事情就是从svn上把自己负责的代码checkout下来,然后运行单元测试,如果单元测试通过,那么说明自己的代码没有问题,然后就在代码块上修改与添加,完成后再用junit进行测试,测试完成后如果没有问题,那么就把相应的代码块提交给svn上。...原创 2016-04-02 09:03:28 · 81 阅读 · 0 评论 -
Java的动态代理Proxy
概念梳理:1.什么是动态代理?答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。2.为什么使用动态代理?答:因为动态代理可以对请求进行任何处理3.使用它有哪些好处...原创 2016-03-27 15:43:28 · 69 阅读 · 0 评论 -
Java中的位运算符
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class data13{...原创 2016-03-24 16:53:00 · 73 阅读 · 0 评论 -
Java中的移位运算符
java中有三种移位运算符<< : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> : 无符号右移,忽略符号位,空位都以0补齐 package com.b510.test;/** * @a...原创 2016-03-24 16:31:02 · 73 阅读 · 0 评论 -
Resultset获取行数和列数
在Java中,获得ResultSet的总行数的方法有以下几种。 第一种:利用ResultSet的getRow方法来获得ResultSet的总行数 Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rset = ...原创 2016-03-23 13:06:42 · 130 阅读 · 0 评论