java basic
文章平均质量分 81
qqqqq1993qqqqq
这个作者很懒,什么都没留下…
展开
-
java8——Stream API
2.1 从迭代器到Stream操作List<String> words = ...;for(String w: words){ if(w.length()>12) count++;}普通的迭代器,很难被并行计算。这也是java8引入大量操作符的原因。List<String> s = new ArrayList<>();long count = s.stream().filter(w ->原创 2017-06-04 17:50:48 · 3350 阅读 · 0 评论 -
类,方法,变量(public、protected、private、static、final)
[修饰符] class 类名{ 零到多个构造器定义; 零到多个Field; 零到多个方法;}一、类类修饰符:public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。final,将一个类生命为最终(即非继承类),表示他不能被其他类继承。不加修原创 2017-07-05 19:40:06 · 3429 阅读 · 0 评论 -
Java 浮点数 float和double类型的表示范围和精度
隐约记得,浮点数判断大小好像有陷阱,因为底层的二进制数不能精确表示所有的小数。有时候会产生让人觉得莫名其妙的事情。如在Java中, 0.99999999f==1f //true 0.9f==1f //false要明白这些,首先要搞清楚float和double在内存结构1、内存结构float和double的范围转载 2017-08-04 23:46:19 · 428 阅读 · 0 评论 -
自动装箱与自动拆箱(jdk1.5后)(以int和Integer为例)
出处:http://blog.csdn.net/JairusChan。自动装箱(Autoboxing)定义 大家在平时编写Java程序时,都常常以以下方式来定义一个Integer对象:[java] view plain copyInteger i=100;转载 2017-08-14 12:59:59 · 363 阅读 · 0 评论 -
基于jdk1.8的equals()与hashCode()方法详解
本文转载自:http://www.cnblogs.com/Qian123/p/5703507.html阅读目录equals()方法详解hashcode() 方法详解Hashset、Hashmap、Hashtable与hashcode()和equals()的密切关系equals()方法详解equals()方法是用来判断其转载 2017-08-14 14:52:33 · 1806 阅读 · 0 评论 -
子类的初始化以及super关键字的作用
很早前就看过继承关系中的初始化顺序如下:父类对象---》父类属性初始化---》父类构造方法(无参)----》子类对象----》子类属性初始化--》子类构造方法这次来验证一下父类:public class Parent { public String name; private int code; public Parent parent; /原创 2017-08-14 20:18:23 · 524 阅读 · 0 评论 -
大端和大端
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的cha原创 2017-08-15 16:59:21 · 616 阅读 · 0 评论 -
java Pattern和Matcher——用于匹配和查找字符串中的内容
总结:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input):一种最基础最简单的匹配。Java正则表达式通过Java.util.regex包下的Pattern类与Matcher类实现(建议在原创 2017-08-24 15:54:57 · 1007 阅读 · 0 评论 -
【集合类分析】ConcurrentHashMap
ConcurrentHashMap是线程安全的,在多线程环境下可以放心使用(方法有原子性)。和HashTable的对比:HashTable也是线程安全的,但实现的途径是对每个方法都加了Synchronized悲观锁,进入方法时获取的都是同一把锁(this),会导致在竞争激烈的并发环境下效率低下。ConcurrentHashMap对加锁对象实现了分离,减少了并发下的冲突。Concurrent原创 2017-05-22 16:31:21 · 291 阅读 · 0 评论 -
【随记】java I/O & byte 和 char
先来两张图 平时我们接触最多的io流,应该就是System.out.println()了 这里调用的是PrintStream类中的方法。在System中默认的标准输出类就是PrintStream。下面系统地总结下: 按来源/去向分类:File(文件): FileInputStream, FileOutputStream, FileReader, FileWriterbyte[]:Byt原创 2017-06-23 23:19:00 · 261 阅读 · 0 评论 -
【随记】在idea下使用jUnit4
前言: 可以对代码进行单元测试。 并且可以根据单元测试生成单元测试报告。比代码中写main 方法测试的好处:可以书写一系列的测试方法,对项目所有的 接口或者方法进行单元测试。 启动后,自动化测试,并判断执行结果, 不需要人为的干预。 只需要查看最后结果,就知道整个项目的方法接口是否通畅。。每个单元测试用例相对独立, 由Junit 启动,自动调用。 不需要添加额外的调用语句。添加,删除,屏原创 2017-06-22 21:36:10 · 528 阅读 · 0 评论 -
向上转型、向下转型
逆变协变是在看lambda时提到通配符的时候看到的,感觉也是子类父类之间的关系,所以想和转型放在一起总结一下(协变逆变放另一篇)。向上转型和向下转型一句话:父类引用指向子类对象。向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口向下转型:父类引用的对象转换为子类类型称为向下转型。举个例子:有2个类,Father是父类,Son类继承自Fat原创 2017-06-09 00:05:50 · 393 阅读 · 0 评论 -
java8——lambda expression
几点总结:一个lambda表达式是一个带有参数的代码块当你想要代码块在以后某个时间点执行时,可以使用lambda表达式lambda表达式可以被转换为函数式接口lambda表达式可以在闭包作用域中有效地访问final变量方法和构造器引用可以引用方法或构造器,但无需调用他们(?) ===1.1 为什么要使用lambda先来看看类似的用法:class Worker implements Ru原创 2017-06-01 17:12:35 · 597 阅读 · 0 评论 -
java8——Coding with lambda
本章关键点:使用lambda表达式的主要原因是,将代码的执行延迟到一个合适的时间点(?)要延迟组合转换,你需要保留一个所有未执行的转换列表,并在最后应用它们。如果你需要多次应用一个lambda 表达式,最好将工作分成多个子任务,以便可以并发执行。请考虑如何处理lambda 表达式中抛出异常的情况。当使用泛型函数式接口时,请使用? Super 通配符作为参数类型,使用? Entend原创 2017-06-07 15:07:30 · 231 阅读 · 0 评论 -
【随记】一次测试多个JUnit单元测试类(方法)
如何使用junit做单元测试? 答案很简单:搭好环境写好测试类,运行就可以了!但如果我有很多个测试类(方法),如何做到一次运行多个测试类呢?首先创建个待测试的beanpackage test;public class testClass { public static String sayHello(){ return "Hello"; }然后创建junit测试类原创 2017-06-22 22:05:55 · 6645 阅读 · 0 评论 -
【集合类分析】LinkedList
以上为LinkedList结构示意图。==== 官方文档摘录: 1.双向链表,线程不安全,允许null值 2.List list = Collections.synchronizedList(new LinkedList(…)),这是线程安全的 3.可以看到LinkedList还实现了队列接口 ==== void linkFirst(E e):将e设为头结点 void linkLast原创 2017-05-30 15:57:34 · 222 阅读 · 0 评论 -
【集合类分析】ArrayList
做题的时候,ArrayList真的是出现频率最高的一个集合类,仔细想一下,主要是因为其不用一开始就确定大小,可以无限添加元素,以及用Collections.sort()将list中的数据排序,并且可以重写比较规则来自定义排序,所以今次就好好总结下ArrayList的底层实现和主要的类方法。==== 特点: 1.ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的原创 2017-05-30 16:04:15 · 277 阅读 · 0 评论 -
【集合类分析】LinkedHashMap
LinkedHashMap是直接继承了HashMap的,只不过LinkedHashMap重写了HashMap的一些方法。从而达到了输出有顺序的目的。 ==== 官方文档: 1.该类提供了一个特殊的构造方法,既可以构造一个输出顺序负荷LRU原则的LinkedHashMap. 何为LRU,就是最近最少使用,打个比方,我们插入值A、B、C、D,如果这样插入的话,那输出的时候就是A、B、C、D,看起原创 2017-05-30 21:29:37 · 249 阅读 · 0 评论 -
【集合类分析】Stack
官方介绍: 继承Vector类,再加了五个方法,实现了Stack的LIFOprotected Object[] elementData; // 底层数据结构protected int elementCount; // 有效的元素数量push方法public E push(E item) { addElement(item); return item; }pu原创 2017-06-16 22:24:23 · 225 阅读 · 0 评论 -
java中的内部类
主要问题:内部类何时被初始化,怎样调用内部类。内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 *内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。几种内部类的共性: A、内部类仍然是一个独转载 2017-06-05 00:26:12 · 226 阅读 · 0 评论 -
逆变、协变
Number num = new Integer(1); ArrayList<Number> list = new ArrayList<Integer>(); //type mismatchList<? extends Number> list = new ArrayList<Number>();list.add(new Integer(1)); //errorlist.add(new Fl转载 2017-06-09 18:05:32 · 249 阅读 · 0 评论 -
【集合类分析】HashMap
首先,HashMap是线程不安全的,所以才有ConcurrentHashMap和HashTable。HashMap允许key和value为null值。(HashMap和HashTable基本相同,除了HashMap是线程不安全的以及HashMap允许null值)影响HashMap性能的两个指标:(1)数组初始长度(桶的数量)(2)负载因子因为当键值对数量>数组长度*负载因子时,H...原创 2017-05-21 19:18:49 · 312 阅读 · 1 评论