Java
文章平均质量分 69
另一只羊
这个作者很懒,什么都没留下…
展开
-
Java 8 中的 Streams API 详解
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进原创 2017-04-13 00:44:01 · 350 阅读 · 0 评论 -
Java IO
一、File类表示文件(目录) 只用于表示文件(目录)的信息(名称/大小等),不能用于文件内容等访问。package com.mook.String.com.mook.io.file;import java.io.File;public class FileExample{ public static void main(String[] args) { createFile转载 2017-06-08 23:43:49 · 365 阅读 · 0 评论 -
Java中的Integer类
Integer Integer与int比较一、构造函数Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。 Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。 二、方法int compareTo(Integer anotherI原创 2017-06-05 18:13:08 · 445 阅读 · 0 评论 -
三、集合之CopyOnWriteArrayList
public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersionUID = 8673264195747942595L; /** The lock prote原创 2017-06-26 15:01:11 · 200 阅读 · 0 评论 -
四、集合之HashMap
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable下面的源码分析均基于JDK1.7添加数据首先看一下HashMap的一个存储单元Entry:static class Entry<K,V> implements Map.Entry<K,V> {原创 2017-06-27 00:55:48 · 253 阅读 · 0 评论 -
五、集合之LinkedHashMap
大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。HashMap的这一缺点往往会带来困扰,因为有些场景,我们期待一个有序的Map。这个时候,LinkedHashMap就闪亮登场了,它虽然增加了时间和空间上的开销,但是通过维护一个运行于所有条目的双向链表,LinkedHashM原创 2017-06-27 13:23:25 · 311 阅读 · 0 评论 -
六、集合之TreeMap
初识TreeMap之前的文章讲解了两种Map,分别是HashMap与LinkedHashMap,它们保证了以O(1)的时间复杂度进行增、删、改、查,从存储角度考虑,这两种数据结构是非常优秀的。另外,LinkedHashMap还额外地保证了Map的遍历顺序可以与put顺序一致,解决了HashMap本身无序的问题。尽管如此,HashMap与LinkedHashMap还是有自己的局限性—它们不具备统计性能原创 2017-06-28 14:07:09 · 286 阅读 · 0 评论 -
字符串与数组
字符串数组原创 2017-05-03 17:28:53 · 605 阅读 · 0 评论 -
Java 笔记2
类修饰符1、内部类可以是静态static的,也可用 public,default,protected 和 private 修饰。 2、与第一条相比,普通类只能由public或默认访问权限修饰符(类名前没有访问权限修饰符)。内部类的作用使用内部类可以给我们带来以下优点:内部类可以很好的实现隐藏(一般的非内部类,是不允许有 private 与 protected 权限的,但内部类可以);内部类拥有外围原创 2017-07-17 22:52:27 · 223 阅读 · 0 评论 -
Java注解
一、什么是注解(Annotation)我们大家都知道Java代码中使用注释是为了向以后阅读这份代码的人解释说明一些事情,注解是注释的升级版,它可以向编译器、虚拟机等解释说明一些事情。比如我们非常熟悉的@Override就是一种注解,它的作用是告诉编译器它所注解的方法是重写父类的方法,这样编译器就会去检查父类是否存在这个方法,以及这个方法的签名与父类是否相同。注解是描述Java代码的代码,它能够被编译原创 2017-07-24 23:10:50 · 437 阅读 · 0 评论 -
Java基础面试
1. 面向对象和面向过程的区别面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺原创 2017-08-29 10:48:51 · 311 阅读 · 0 评论 -
JDK8新特性:接口的静态方法和默认方法
在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。由于这些修饰符都是默认的,所以在JDK8之前,下面的写法都是等价的。public interface JDK8BeforeInterface { public static final int field1 = 0; int转载 2017-10-07 13:44:07 · 685 阅读 · 0 评论 -
double精度相关问题
保留4位小数方法一:强制保留4位小数,最末位是四舍五入的double f = 111.123456789123456789123456789123456789;System.out.println(f); //111.12345678912345BigDecimal b = new BigDecimal(f);double f2 = b.setScale(4, BigDecimal.ROUND_原创 2017-10-03 08:36:22 · 346 阅读 · 0 评论 -
Java泛型
Java泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换,它与C++中的模板templates比较类似。但是有一点,Java的泛型在编译期有效,在运行期被删除,也就是说所有的泛型参数类型在编译后都会被清除掉。一、类型擦除import java.lang.reflect.InvocationTargetException;import java.util.ArrayList;i原创 2017-10-05 12:26:50 · 273 阅读 · 0 评论 -
Java 笔记1
final实例域构建对象时必须初始化这样的域(只能初始化一次),并且初始化之后就不能被修改。 特别的,当final修饰的不是基本数据类型,修饰的是一个引用类型,那么就表示该引用值不能变,但其对象本身是可以被修改的。显示初始化;没有显示初始化,就要在构造器或者构造代码块中进行初始化。注意:将一个类声明为final,只有其中的方法自动成为final,而不包括域。动态绑定至此,编译器已经获得需要调原创 2017-06-20 16:32:15 · 618 阅读 · 0 评论 -
枚举类
enum Size { SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL"); private Size(String abbreviation) { this.abbreviation = abbreviation; } public String getAbbreviation() { return abbrev原创 2017-10-05 17:54:46 · 269 阅读 · 0 评论 -
内部类
内部类:将一个类的定义放在另一个类的定义内部。 为什么需要内部类:内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。内部类可以对同包中的其他类隐藏起来。当需要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。一、创建内部类public class Parcel2 { class Contents { private int i = 11; pub原创 2017-10-06 10:46:28 · 176 阅读 · 0 评论 -
Java中的时间与日期
import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.time.*;import java.time.format.DateTimeFormatter;import java.util.Calendar;import java.uti...原创 2018-03-16 22:11:52 · 223 阅读 · 0 评论 -
集合框架
添加一组元素import java.util.*;public class AddingGroups { public static void main(String[] args) { Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5)); //Arrays原创 2017-06-08 13:17:13 · 272 阅读 · 0 评论 -
接口
接口内的方法自动会声明为public;成员变量会自动定义为public、static和final(编译时常量)。一、Java的多重继承使用接口:为了向上转型为多个基类型防止客户端创建该类的对象,并确保这仅仅是一个接口(与使用抽象类的效果相同)二、通过继承来扩展接口三、适配接口策略模式四、接口中的域在接口中定义的域不能是“空final”,但可以被非常量表达式初始化。五、接口与工厂//: inte原创 2017-06-01 22:22:41 · 397 阅读 · 0 评论 -
容器
迭代器ListHashMap HashtableCollectionCollections原创 2017-05-03 12:52:18 · 242 阅读 · 0 评论 -
Java多线程(三)
什么会引起Java线程阻塞?join()sleep()Daemon Thread线程的优先级yield()原创 2017-05-04 22:10:18 · 252 阅读 · 0 评论 -
Java多线程(一)
进程线程并行并发线程的生命周期和基本状态五种基本状态多线程的创建与启动的几种方式原创 2017-05-04 11:29:40 · 499 阅读 · 1 评论 -
Java多线程(二)
后台线程后台(daemon)线程创建与启动线程的几种方式原创 2017-05-04 21:41:38 · 191 阅读 · 0 评论 -
Java多线程(四)
线程安全synchronized同步代码块同步锁对象wait()/notify()/noitifyAll()原创 2017-05-04 22:34:29 · 226 阅读 · 0 评论 -
Java多线程总结
进程和线程 一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段、数据段和堆空间)及一些进程级的资源(例如打开的文件),但是各个线程拥有自己的栈空间。使用多线程可以减少程序的响应时间。与进程相比,线程的创建和切换开销更小。多CPU或多核计算机本身就有执行多线程的能力。同步和异步同步机制确保资源的安全性。 synchronized是以系统开销作为代价的,有时候甚至可能造成死锁。原创 2017-05-04 23:48:27 · 217 阅读 · 0 评论 -
Java内部类
内部类转载 2017-05-14 15:33:20 · 199 阅读 · 0 评论 -
Java中Math类
Java中Math类原创 2017-06-05 18:20:20 · 255 阅读 · 0 评论 -
Java中的Random类
java.util.Random构造函数Random() 创建一个新的随机数生成器。 种子为当前时间毫秒值。 Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。 方法int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。原创 2017-06-05 18:23:39 · 223 阅读 · 0 评论 -
初始化与清理
方法重载 this关键字初始化顺序 静态static清理内存机制 finalize可变长参数 数组初始化枚举原创 2017-03-27 23:25:42 · 489 阅读 · 0 评论 -
复用类
复用类组合继承代理初始化及类的加载原创 2017-06-01 17:24:56 · 192 阅读 · 0 评论 -
多态
多态原创 2017-06-01 20:08:14 · 260 阅读 · 0 评论 -
Java中的StringBuffer类
java中的StringBuffer类原创 2017-06-05 16:39:02 · 236 阅读 · 0 评论 -
HashMap注意事项
HashMap:JDK7文档equals()和hashCode()String.java:public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof Strin...原创 2017-06-08 00:27:03 · 2539 阅读 · 0 评论 -
Java异常处理机制
Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。 Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JV原创 2017-06-07 21:45:33 · 363 阅读 · 0 评论 -
Java中的String类
一、构造函数 String(byte[ ] bytes):通过byte数组构造字符串对象。 String(char[ ] value):通过char数组构造字符串对象。 String(Sting original):构造一个original的副本。即:拷贝一个original。 String(StringBuffer buffer):通过StringBuffer数组构造字符串对象。 例如:原创 2017-06-05 16:08:33 · 315 阅读 · 0 评论 -
Java中的Arrays类
Java中的Arrays类原创 2017-06-05 17:15:13 · 215 阅读 · 0 评论 -
八、泛型
8.1 为什么要使用泛型程序设计泛型是JavaSE1.5的新特效,泛型的本质是参数化类型,就是说所操作的数据类型被指定为一个参数,这种参数可以用在类、接口和方法中创建,分别称为泛型类、泛型接口、泛型方法。引用泛型的好处是安全简单。泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比使用Object时强制类型转换的机制具有更好的可读性和安全性。8.1.1 类型参数的...原创 2019-08-30 00:27:38 · 833 阅读 · 0 评论