java
文章平均质量分 91
逐个温度
诚实守信,勤奋努力,脚踏实地,有理想有目标,2011年9月就读于于临沂大学信息学院软件工程专业本科,2015年9就读于南京邮电大学计算机软件学院研究生
展开
-
Java对象序列化详解
所有分布式应用常常需要跨平台,跨网络,因此要求所有传的参数、返回值都必须实现序列化。1. Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。 2. 为什么需要序列化与反序列化 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片转载 2017-06-14 20:08:14 · 392 阅读 · 0 评论 -
Java数组使用总结
1. 概念 同一种类型数据的集合。其实数组就是一个容器。2. 初始化 Java 数组初始化的两种方法: 静态初始化: 程序员在初始化数组时为数组每个元素赋值; 动态初始化: 数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。//静态初始化数组:方法一 String cats[] = new String转载 2017-06-07 10:20:22 · 330 阅读 · 0 评论 -
java泛型中通配符的使用
通配符有三种: 1、无限定通配符 形式 2、上边界限定通配符 形式 //用Number举例 3、下边界限定通配符 形式 //用Number举例1、泛型中的?通配符 如果定义一个方法,该方法用于打印出任意参数化类型的集合中的所有数据,如果这样写import java.util.Array转载 2017-06-06 21:19:44 · 547 阅读 · 0 评论 -
java泛型中类型擦除以及类型擦除带来的问题
一、Java泛型的实现方法:类型擦除 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过程就称为类型擦除。 如在代码中定义的List和List等类型,在编译后都会编程List。JVM看到的只是List,而由泛型附加的类型信息对JVM来转载 2017-06-06 21:13:12 · 443 阅读 · 0 评论 -
Java泛型总结
一. 泛型概念的提出首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn");转载 2017-06-06 19:07:34 · 213 阅读 · 0 评论 -
Java中的RTTI
并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这就是RTTI(Runtime Type Information,运行时类型信息)。 运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息。 多态转载 2017-06-02 11:02:45 · 788 阅读 · 0 评论 -
java字符串分解 StringTokenizer用法
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串。如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你。 先看个例子:public static void main(String[] args) { StringTokenizer st = new StringTokenizer("www.ooobj.转载 2017-06-01 21:49:28 · 490 阅读 · 0 评论 -
java中常用的正则表达式
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher。Pattern 是一个正则表达式经编译后的表现模式Matcher是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给转载 2017-06-01 21:07:10 · 208 阅读 · 0 评论 -
Java的格式化输出
在javaSE5中,推出了C语言中printf()风格的格式化输出。这不仅使得控制输出的代码更加简单,同时也给与Java开发者对于输出格式与排列更大的控制能力。1. System.out.format() Java Se5引入的format方法可用于PrintStream或PrintWriter对象,其中也包括System.out对象。public static voi转载 2017-06-01 16:55:38 · 1579 阅读 · 0 评论 -
StringBuilder、StringBuffer和String三者的联系和区别
1. String 类 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。 String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向了其它地址。转载 2017-06-16 21:11:08 · 1037 阅读 · 0 评论 -
Java注解Annotation基础
从JDK5开始,Java增加了Annotation(注解),Annotation是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证、处理或者进行部署。Annotation提供了一种为程序元素(包、类、构造转载 2017-06-16 20:02:09 · 221 阅读 · 0 评论 -
Java中字符串String总结
1.String是不可变类 这句话其实大家都很熟悉了,那么具体什么是不可变类呢?一般认为:当对象一旦创建完成后,在正常情况下,对象的状态不会因外界的改变而改变(对象的状态是指对象的属性,包括属性的类型及属性值)。首先看一个基本的例子:String s = "abc";System.out.println("s:" + s); // 输出s:abcs = "转载 2017-06-01 15:54:47 · 446 阅读 · 0 评论 -
Java异常体系结构
一、 异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的异常处理。Java语言的异常处理框架, 是Java语言健壮性的一个重要体现。 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许多异常类,这些异常类分为转载 2017-05-28 22:12:00 · 521 阅读 · 0 评论 -
java队列Queue方法
Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。java中具有Queue功能的类主要有如下几个:AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, LinkedB转载 2017-05-28 21:49:52 · 2240 阅读 · 0 评论 -
Java集合中Map接口的使用方法
Map接口 Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value; Map中的键值对以Entry类型的对象实例形式存在; 键(key值)不可重复,value值可以重复,一个value值可以和很多key值形成对应关系,每个建最多只能映射到一个值。转载 2017-05-28 21:32:27 · 1513 阅读 · 0 评论 -
java中set集合的使用方法
1. HashSet Java.util.HashSet类实现了Java.util.Set接口。它有如下特点: 1.它不允许出现重复元素; 2.不保证集合中元素的顺序 3.允许包含值为null的元素,但最多只能有一个null元素。 下面代码是利用hashSet获取不重复的一组groupId:public sta转载 2017-05-28 21:18:33 · 518 阅读 · 0 评论 -
java中Stack栈
在Java中Stack类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下: Stack通过五个操作对Vector进行扩展,允许将向量视为堆栈。这个五个操作如下: 操作转载 2017-05-28 21:05:26 · 172 阅读 · 0 评论 -
Java类型强制转换
在Java中,之所以需要强制类型转换是为了防止程序员在不知情的情况下把A类型数据错当成B类型的数据。将一种类型的值赋给另一个类型的变量是很常见的,如果这两种是兼容的,那么Java将执行自动转换,例如int和long,将int类型赋值给long类型的变量,总是可行的。但不是所有的类型都兼容。例如,没有将double类型转换为byte型的定义。但是不兼容的类型之间的转换仍然是可能的。达到这个目的,就需转载 2017-06-02 20:32:02 · 332 阅读 · 0 评论 -
Java 线程 Executor 框架详解与使用
在HotSpot VM的线程模型中,Java线程被一对一映射为本地操作系统线程。Java线程启动时会创建一个本地操作系统线程;当该Java线程终止时,这个操作系统线程也会被回收,在JVM中我们可以通过-Xss设置每个线程的大小。操作系统会调度所有线程并将它们分配给可用的CPU。 在上层,java多线程程序通常把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)将这转载 2017-06-07 15:30:12 · 293 阅读 · 0 评论 -
Java压缩技术(七) TAR——Commons实现
相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Java压缩技术(四) GZIP——Java原生实现 Java压缩技术(五) GZIP相关——浏览器解析 Java压缩技术(六) BZIP2——Commons实现 Java压缩技术(七) TAR——Commons转载 2017-06-14 14:39:17 · 747 阅读 · 0 评论 -
Java压缩技术(六) BZIP2——Commons实现
相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Java压缩技术(四) GZIP——Java原生实现 Java压缩技术(五) GZIP相关——浏览器解析 Java压缩技术(六) BZIP2——Commons实现 Java压缩技术(七) TAR——Commons转载 2017-06-14 14:37:57 · 1266 阅读 · 0 评论 -
Java压缩技术(五) GZIP相关——浏览器解析
相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Java压缩技术(四) GZIP——Java原生实现 Java压缩技术(五) GZIP相关——浏览器解析 Java压缩技术(六) BZIP2——Commons实现 Java压缩技术(七) TAR——Commons转载 2017-06-14 14:34:31 · 630 阅读 · 0 评论 -
Java压缩技术(四) GZIP——Java原生实现
相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Java压缩技术(四) GZIP——Java原生实现 Java压缩技术(五) GZIP相关——浏览器解析 Java压缩技术(六) BZIP2——Commons实现 Java压缩技术(七) TAR——Commons转载 2017-06-14 14:29:16 · 1224 阅读 · 0 评论 -
Java压缩技术(三) ZIP解压缩——Java原生实现
相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Java压缩技术(四) GZIP——Java原生实现 Java压缩技术(五) GZIP相关——浏览器解析 Java压缩技术(六) BZIP2——Commons实现 Java压缩技术(七) TAR——Commons转载 2017-06-14 14:26:22 · 819 阅读 · 0 评论 -
Java压缩技术(二) ZIP压缩——Java原生实现
相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Java压缩技术(四) GZIP——Java原生实现 Java压缩技术(五) GZIP相关——浏览器解析 Java压缩技术(六) BZIP2——Commons实现 Java压缩技术(七) TAR——Commons转载 2017-06-14 14:18:29 · 791 阅读 · 0 评论 -
Java压缩技术(一) ZLib
Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Java压缩技术(四) GZIP——Java原生实现 Java压缩技术(五) GZIP相关——浏览器解析 Java压缩技术(六) BZIP2——Commons实现 Java压缩技术(七) TAR——Commons实现 有转载 2017-06-14 10:52:14 · 3959 阅读 · 0 评论 -
Java IO流框架概述
Java流操作有关的类或接口:Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输转载 2017-06-13 10:45:54 · 991 阅读 · 0 评论 -
Java File 类的使用方法详解
Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作。本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看一下。构造函数public class FileDemo { public static void main(String[] args){ //构造函数F转载 2017-06-13 10:30:33 · 468 阅读 · 0 评论 -
java容器框架概述
容器框架概述 在JDK8中rt.jar文件中,Java.util.*;包中的容器主要包括List、Set、Queue和Map四个大类,其中List、Set、Queue是和Collection接口相关的容器,而Map是单独列出来的容器。使用astah community版绘制了容器框架的类图。 Collection的List、Set、Queue类图如转载 2017-06-13 09:58:25 · 692 阅读 · 0 评论 -
Java中byte转换int时与0xff进行与运算的原因
1.问题由来剖析该问题前请看如下代码 public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[i] & 0xFF);转载 2017-06-10 18:24:43 · 302 阅读 · 0 评论 -
Java 多线程并发编程之 Synchronized 关键字
synchronized 关键字解析同步锁依赖于对象,每个对象都有一个同步锁。现有一成员变量 Test,当线程 A 调用 Test 的 synchronized 方法,线程 A 获得 Test 的同步锁,同时,线程 B 也去调用 Test 的 synchronized 方法,此时线程 B 无法获得 Test 的同步锁,必须等待线程 A 释放 Test 的同步锁才能获得从而执行对应方转载 2017-06-09 21:13:18 · 225 阅读 · 0 评论 -
Java 类加载机制详解
什么是 Java 类加载机制?Java 虚拟机一般使用 Java 类的流程为:首先将开发者编写的 Java 源代码(.java文件)编译成 Java 字节码(.class文件),然后类加载器会读取这个 .class 文件,并转换成 java.lang.Class 的实例。有了该 Class 实例后,Java 虚拟机可以利用 newInstance 之类的方法创建其真正对象了。Cla转载 2017-06-09 19:51:55 · 203 阅读 · 0 评论 -
Java 元编程及其应用
首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力.同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个完整系统,另外一个是标准的SSM(Spring-SpringMVC-Mybatis)Java程序员,用了半天,才把环境刚刚搭好.可以说,社区内,成功的web框架中基本没有不强依赖元编程技术的,框架做的工作越多,应转载 2017-06-09 16:44:52 · 595 阅读 · 0 评论 -
我是一个线程
转载 码农翻身微信公众号 2016-04-02 老刘 《我是一个线程(修订版)》第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了转载 2017-06-09 10:40:26 · 199 阅读 · 0 评论 -
获取项目中Classpath中的资源路径
classpath 是什么 classpath实际上就是编译后的 以 classes 文件夹为起点的路径各种path获取到的路径的区别 1. Main.class.getResource(""); -> 得到的是当前class所在的路径 2. Main.class.getResourceAsStream("");转载 2017-06-08 21:06:31 · 580 阅读 · 0 评论 -
LinkedList基本用法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList的构造函数如下 1. public LinkedList(): ——生成空的链表 2. public LinkedList(Collection col): 复制构造函数1. 获取链表的第一个和最后一个元素i转载 2017-05-28 20:50:59 · 168 阅读 · 0 评论 -
JAVA中ListIterator和Iterator详解与辨析
在使用Java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置,如下图所示: 这里假设集合List由四个元素List1、List2、Li转载 2017-05-28 20:33:54 · 386 阅读 · 0 评论 -
public staticvoid main(String[]args)函数解析
public staticvoid main(String[]args)为Java程序的入口方法,JVM在运行程序的时候,会首先查找main方法。方法解析1. public是权限修饰符,表明任何类或对象都可以访问这个方法2. static表明main方法是一个静态方法,即方法中的代码是存储在静态存储区的,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以直接通过原创 2017-05-25 22:05:04 · 1461 阅读 · 0 评论 -
java基本类型重载
1. 重载java允许在一个类中,多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载2. 基本类型重载基本类型能从一个较小的类型自动提升至一个较大的类型,此过程涉及重载时,可能会造成一些混淆。3. 代码示例public class Test { /** * 测试涉及基本类型的重载 */ public原创 2017-05-25 21:49:24 · 1984 阅读 · 0 评论 -
switch的表达式考察
问题:switch的表达式是否可以为long?是否可以为string?讨论:1. 在java5以前,switch(expr)中,expr只能是byte、char、short、int2. 从java5开始,java中引入了枚举类型,expr也可以是enum类型3. 从java7开始,expr还可以是字符串String,但是长整形long在目前所有的版本都是不可以的。原创 2017-05-25 20:53:44 · 296 阅读 · 0 评论