java 基础
乔志勇笔记
java学习新天地
展开
-
JAVA中String类的intern()方法的作用
一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的首先请大家看一个例子:[java] view plain copy print?public static void main(String[] args) throws Exception { String a = "b"转载 2017-06-14 19:04:21 · 340 阅读 · 0 评论 -
java中四种访问权限
http://blog.csdn.net/fuuckwtu/article/details/6504161 pubicprotecteddefaultprivate同一类中的成员是是是是同一包中的成员是是是否不同包的子类是是否否不同包的非子类是否否否转载 2017-06-19 10:51:36 · 323 阅读 · 0 评论 -
File文件读取与输入输出流
http://blog.csdn.net/sjz4860402/article/details/47188717一.流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文转载 2017-06-20 09:20:32 · 1153 阅读 · 0 评论 -
String的compareTo()方法返回值
compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的 差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方 全比较完,这时就比较字符的长度. 例: String s1 = "abc"; String转载 2017-07-02 21:48:38 · 2187 阅读 · 0 评论 -
Java获取月份第一天和最后一天日期
/** * 某一个月第一天和最后一天 * @param date * @return */ private static Map getFirstday_Lastday_Month(Date date) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");原创 2017-06-23 16:09:13 · 1789 阅读 · 2 评论 -
java常用类,常用包,常用接口,运行时错误
常用类:Java.lang.Object、java.lang.String、java.lang.StringBuffer、java.lang.Math、java.lang.System,java.util.Vector,java.util.Date,java.text.DecimalFormate常用包:java.lang,java.io,java.util,java.util.zip,j转载 2017-06-23 16:16:02 · 322 阅读 · 0 评论 -
new String(getBytes(ISO-8859-1),GBK)解决中文乱码问题分析
http://blog.csdn.net/skiffloveblue/article/details/7869264用了好几种编码 全是乱码,request.setCharacterEncoding("UTF-8");尝试了好几种String newdefrayItem = new String(request.getParameter("newdefrayItem").g转载 2017-07-04 14:15:11 · 2477 阅读 · 0 评论 -
字符流解析 储存
package com.chinamobile.datacollector.service;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutpu原创 2017-06-14 11:08:12 · 413 阅读 · 0 评论 -
Java中抽象类也能实例化
http://www.cnblogs.com/crt-share/archive/2015/08/29/4769331.html在Java中抽象类真的不能实例化么? 在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的。这样就把我搞糊涂了,既然有构造方法,又不可以通过new来创建,那么抽象类在没变转载 2017-06-14 10:38:06 · 1135 阅读 · 0 评论 -
InputStream和Reader(BufferedReader、InputStreamReader 、FileReader )的区别
java.io下面有两个抽象类:InputStream和ReaderInputStream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。即用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。弄清了两个超类的根本区原创 2017-04-17 19:31:05 · 498 阅读 · 0 评论 -
System.exit(0)和System.exit(1)区别
http://blog.csdn.net/xw13106209/article/details/61225171.参考文献http://hi.baidu.com/accpzhangbo/blog/item/52aeffc683ee6ec238db4965.html2.解析查看Java.lang.System的源代码,我们可以找到System.exit(status)这个方法转载 2017-06-14 10:44:34 · 270 阅读 · 0 评论 -
Java关键字transient和volatile小结(转)
http://heaven-arch.iteye.com/blog/1160693transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下。transienttransient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标记为transient的变量不会被序列化。示例:cla转载 2017-06-14 10:43:02 · 325 阅读 · 0 评论 -
Calendar.getInstance()中的getInstance()函数
getInstance()是Calendar提供的一个类方法,它的作用是获得一个Calendar类型的通用对象,getInstance()将返回一个Calendar的对象。还有一点关于 为什么不用 Calendar c=new Calendar();原因是:Calendar类是一个抽象类,在实际使用时实现特定的子类的对象。由于Calendar类是抽象类,且Calendar类的构造方法是prote转载 2017-06-14 10:39:17 · 1717 阅读 · 0 评论 -
Java中的24种设计模式与7大原则
http://www.cnblogs.com/zhoubang521/p/5200179.html一、创建型模式1、抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类.2、生成器模式(Builder pattern): 使用生成器模式封装一个产品的构造过程, 并允许按步骤构造. 将一个复杂对象的转载 2017-06-14 10:35:32 · 314 阅读 · 0 评论 -
Java 同步方式 (2) —— wait和notify/notifyall
版权声明:本文为博主原创文章,未经博主允许不得转载。Java 中除了关键字synchronized 能够实现线程同步外,还可以使用 wait 和 notify/notify 实现同步。wait 方法是使拥有当前对象(object)的线程(thread)放弃锁(release lock),进入睡眠状态notify 通知该对象(object)因上面调用wait而等待的某一进程重转载 2017-06-14 10:30:10 · 364 阅读 · 0 评论 -
优先使用TimeUnit类中的sleep()
http://blog.csdn.net/kuyuyingzi/article/details/17033473TimeUnit是什么?TimeUnit是Java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段时间里Thread的sleep()方法作为暂停线程的标准方式,几乎所有Java转载 2017-06-14 10:27:16 · 831 阅读 · 0 评论 -
ConcurrentHashMap使用要点
http://www.cnblogs.com/zhuawang/p/4779649.htmlConcurrentHashMap的简要总结:1、public V get(Object key)不涉及到锁,也就是说获得对象时没有使用锁;2、put、remove方法要使用锁,但并不一定有锁争用,原因在于ConcurrentHashMap将缓存的变量分到多个Segment,每个Segmen转载 2017-06-14 08:30:45 · 320 阅读 · 0 评论 -
自从有了BigInteger,我再也不用担心要处理的数据有多大了
想当年,在C语言的学习中,我们常常被灌输,int的范围不能超过2^32如果你的操作系统是64位的还能去到2^64,而long则是固定2^32,如果你要用到更大的数则应该用double等浮点型表示,虽然double的长度是你操作系统的位长,但表示大型数据的时候仍然会丢失精度,因此C语言甚至还出现一些表示大数据但不能够丢失精度的数组题,记得当时候我也曾经做过,使用一个循环结构来对一个超长数据字符串,比转载 2017-06-12 14:59:31 · 950 阅读 · 1 评论 -
Java 加密 base64 encode
【前言】计算机中的数据都是二进制的,不管是字符串还是文件,而加密后的也是二进制的,而我们要看到的往往是字符串,本文就介绍了将byte[]转为各种进制以及base64编码。【base64】是一种编码方式,可以理解为复杂的进制,很多算法加密后输出的都是byte[],而这个byte[]对我们显示的形式是不友好的(乱码),所以一般都是转为base64的,当然也可以转为其他进制。转载 2017-06-12 14:52:22 · 724 阅读 · 0 评论 -
java base64编码的三种方式
java 中如何使用base64编码呢?有如下三种方式:方式一:commons-codec.jarJava代码 String base64String = "whuang123"; byte[] result = Base64.encodeBase64(base64String.getBytes()); 方式二:使用sun.mis转载 2017-06-12 14:51:37 · 400 阅读 · 0 评论 -
spring mvc的controller统一异常处理handlerExceptionResolver
出现异常并不可怕,可怕的是出现了异常,你却不知道,也没有进行异常处理。 spring MVC的Controller出现异常的默认处理是响应一个500状态码,再把错误信息显示在页面上,如果用户看到这样的页面,一定会觉得你这个网站太LOW了。 要解决Controller的异常问题,当然也不能在每个处理请求的方法中加上异常处理,那样太繁琐。Spring MVC提供了一个HandlerExcept转载 2017-06-10 22:33:14 · 413 阅读 · 0 评论 -
java反射的一些调试
额,研究过这个的人很多很多,但是我没有很深入的研究过,所以谁也拦不住我去研究研究,然后记录下来······如有雷同··那就雷同了···请多多包涵。首先是整个项目的结构:使用到的类:[java] view plain copy package reflect.demo; public class Demo { }转载 2017-06-08 15:16:25 · 1663 阅读 · 0 评论 -
DOM,SAX,JDOM,DOM4J优缺点比较及生产xml和解析xml
下载必要的jar包:activation.jarcommons-logging-1.0.4.jardom4j-1.6.1.jarjaxen-1.1.1.jarjdom-1.0.jar一、DOM解析器读入整个文档,然后构建一个驻留内存的树结构,使用 DOM 接口来操作这个树结构。优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;访问效率高转载 2017-06-08 09:57:16 · 600 阅读 · 0 评论 -
classloader.getresources()介绍
◆一般情况下,我们都使用相对路径来获取资源,这样的灵活性比较大.比如当前类为com/bbebfe/Test.class而图像资源比如sample.gif应该放置在com/bbebfe/sample.gif而如果这些图像资源放置在icons目录下,则应该是com/bbebfe/icons/sample.gif通过当前类文件的路径获取资源主要有如下几种方式:·假设当前类为com.b转载 2017-06-08 09:50:05 · 5127 阅读 · 0 评论 -
Class.getResource和ClassLoader.getResource的区别分析
在Java中获取资源的时候,经常用到Class.getResource和ClassLoader.getResource,本文给大家说一下这两者方法在获取资源文件的路径差异。Class.getResource(String path)path不以'/'开头时,默认是从此类所在的包下取资源;path以'/'开头时,则是从项目的ClassPath根下获取资源。在这里'/'表示ClassPath转载 2017-06-08 09:49:18 · 274 阅读 · 0 评论 -
url特殊字符转义及解决方法
URL特殊字符需转义 1、空格换成加号(+) 2、正斜杠(/)分隔目录和子目录 3、问号(?)分隔URL和查询 4、百分号(%)制定特殊字符 5、#号指定书签 6、&号分隔参数 转义字符的原因: 如果你的表单使用get方法提交,并且提交的参数中有“&”等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待。例如 表单的转载 2017-06-08 09:13:34 · 8623 阅读 · 0 评论 -
关于JAVA项目中CLASSPATH路径详解
在dos下编译Java程序,就要用到classpath这个概念,尤其是在没有设置环境变量的时候。classpath就是存放.class等编译后文件的路径。javac:如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指转载 2017-06-08 08:35:21 · 493 阅读 · 0 评论 -
classpath: 和classpath*:的区别
classpath本质是jvm的根路径,jvm获取资源都是从该根路径下找的,注意这个根路径是个逻辑路径,并不是磁盘路径。比如两个jar包的路径是/a/a.jar和/b/b.jar,但是用classpath*:就可以找到这两个jar包中的资源。一般classpath指向的是classes,也就是编译路径的根路径,而一般classes中放着这些文件:1.java文件编译好的class文件。转载 2017-06-08 08:34:20 · 1379 阅读 · 0 评论 -
【java项目实战】dom4j解析xml文件,连接Oracle数据库
简介 dom4j是由dom4j.org出品的一个开源XML解析包。这句话太官方,我们还是看一下官方给出的解释。如下图: dom4j是一个易于使用的、开源的,用于解析XML,XPath和XSLT等语言的库。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准。特点转载 2017-06-08 08:24:36 · 652 阅读 · 0 评论 -
获取指定包名下所有的类
我们需要开发一个类加载器,来加载该基础包名下的所有类,比如使用了某注解的类,或实现了某接口的类,在或者继承了某父类的所有子类。 下一个ClassUtil工具类作为类加载器,提供与类相关的方法,比如获取类加载器,加载类,获取指定包下的所有类。ClassUtil的代码如下:[java] view plain copy print?package转载 2017-06-07 16:26:46 · 1510 阅读 · 0 评论 -
类名.class, class.forName(), getClass()区别
1:Class cl=A.class; JVM将使用类A的类装载器, 将类A装入内存(前提是:类A还没有装入内存),不对类A做类的初始化工作.返回类A的Class的对象。2:Class cl=对象引用o.getClass(); 返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所属的转载 2017-06-06 17:11:51 · 801 阅读 · 0 评论 -
关于.getClass()和.class的区别
一直在想.class和.getClass()的区别,思索良久,有点思绪,然后有网上搜了搜,找到了如下的一篇文章,与大家分享。原来为就是涉及到Java的反射~~~~~Java反射学习所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射转载 2017-06-06 17:01:06 · 295 阅读 · 0 评论 -
java Class.getResource和ClassLoader.getResource
Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下查找相应的资源。如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始转载 2017-06-06 16:48:10 · 373 阅读 · 0 评论 -
使用SAX解析XML文件
SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准,虽然如此,使用SAX的还是不少,几乎所有的XML解析器都会支持它。 与DOM比较而言,SAX是一种轻量型的方法。我们知道,在处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个Node对象。当文档比较小的时候,这不会造成什么问题,但是一旦文档大起来,处理DOM转载 2017-06-06 16:23:19 · 307 阅读 · 0 评论 -
saxbuilder用法
xml为我们在网络交换数据带来很大方便,在java中可以使用saxbuilder来操作xml格式文件,下面介绍一下saxbuilder的常用方法.import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;impor转载 2017-06-06 16:22:42 · 420 阅读 · 0 评论 -
MessageDigest的功能及用法
MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。MessageDigest 对象开始被初始化。该对象通过使用 update()方法处理数据。任何时候都可以调用reset()方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用digest()方法之一完成哈希计转载 2017-06-06 14:02:27 · 713 阅读 · 0 评论 -
简单介绍java Enumeration
Enumeration接口 Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色转载 2017-06-06 14:01:35 · 427 阅读 · 0 评论 -
Java读取Properties文件的六种方法
使用J2SE API读取Properties文件的六种方法1。使用Java.util.Properties类的load()方法示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));Properties p = new Properties();p.load(in);2。使用jav转载 2017-06-06 13:59:30 · 267 阅读 · 0 评论 -
Java中Properties类的操作
知识学而不用,就等于没用,到真正用到的时候还得重新再学。最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加一些脚本语言Python,Perl之类的,不得已,又得重新拾起。本文通过看《Java编程思想》和一些网友的博客总结而来,只为简单介绍Properties类的相关操作。 一、Java Prope原创 2017-06-06 13:56:08 · 312 阅读 · 0 评论 -
举例说明Java中代码块的执行顺序(非静态代码块)
这篇文章主要介绍了举例说明Java中代码块的执行顺序,包括静态属性和非静态属性以及构造函数等相关的执行先后,需要的朋友可以参考下前言 今天在看Android ContentProvider实现的时候,突然想到了Java类在new的过程中,静态域、静态块、非静态域、非静态块、构造函数的执行顺序问题。其实这是一个很经典的问题,非常考察对Java基础知识的掌握程度。很多面试过程中相转载 2017-06-06 10:30:23 · 2189 阅读 · 0 评论