JAVA基础
许多许多许多多
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JDK源码解读————AbstractList(抽象类)
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> { 从类的声明可以看到,AbstractList其实是List接口的简单实现,提供了一些方法的具体实现,如果要自己创建一个LIST,就可以继承这个抽象类,能少写很多代码。 1.属性 ...原创 2019-10-18 13:41:39 · 263 阅读 · 0 评论 -
Path和ClassPath的区别
Path : windows系统执行exe文件等可执行文件时,寻找exe文件的路径 ClassPath :Java虚拟机执行class文件时,查找class文件的路径 javac命令把java文件编译为class文件 -sourcepath 源文件目录 -classpath class文件路径 -d 编译后文件目录 例子 :jav...原创 2019-04-12 17:33:29 · 335 阅读 · 0 评论 -
Thread.currentThread 和 this的区别
在自学Thread的时候,遇到一个疑惑。代码如下: public class CurrentThreadExt extends Thread{ public CurrentThreadExt(){ System.out.println("CurrentThreadExt --------- begin"); System.out.println("T...原创 2019-04-25 12:07:25 · 284 阅读 · 0 评论 -
写自己的定时任务TimeTask(一)
TimerTask和Timer类用于设置定时任务,实质上用的是Thread,为了加深理解,所以打算自己写一个。 定时任务:其实理解起来,就是一个线程一直在阻塞着(wait),然后当设置的时间到了,notify一下,执行这个阻塞的线程。按照这个思路,来写一个最简单的定时任务。 public class MyTimerTask implements Runnable{ private O...原创 2019-05-14 16:22:45 · 1171 阅读 · 0 评论 -
JDK源码解读————Collection(接口)
Collection接口是对存储数据的容器的抽象,里面定义的方法其实就是容器应该具有的功能。 1. 新增、删除、清空 boolean add(E e); boolean addAll(Collection<? extends E> c); boolean remove(Object o); boolean removeAll(Collection<?> c); ...原创 2019-09-17 17:02:42 · 216 阅读 · 0 评论 -
JDK源码解读————AbstractCollection(抽象类)
AbstractCollection注释的最上方,就说这是Collection基本的实现。 构造器方法 protected AbstractCollection() {} 抽象方法 public abstract Iterator<E> iterator(); public abstract int size(); 这里为什么这两个方法要定义成抽象的呢?其实原因很...原创 2019-09-18 10:37:52 · 245 阅读 · 0 评论 -
JDK源码解读————Iterable(接口)
因为Collection接口继承了Iterable接口,所以过一下这个类。 1.返回迭代器 Iterator<T> iterator(); 2. 循环 default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this...原创 2019-09-18 16:04:45 · 209 阅读 · 0 评论 -
JDK源码解读————Iterator(接口)
上一篇的Iterable实现了一个Iterator对象,这个接口的子类就是实际的迭代器。 1.hasNext() 判断是否还有元素 boolean hasNext(); 2.next() 返回下一个元素 E next(); 3.remove() default void remove() { throw new UnsupportedOperationException(...原创 2019-09-18 17:24:30 · 194 阅读 · 0 评论 -
JDK源码解读————List(接口)
List接口继承了Collection接口,是列表这一类型的基础接口 继承父类的方法 int size(); boolean isEmpty(); boolean contains(Object o); Iterator<E> iterator(); Object[] toArray(); <T> T[] toArray(T[] a); boolean add(E e...原创 2019-09-18 18:00:39 · 220 阅读 · 0 评论 -
JDK源码解读————ListIterator(接口)
ListIterator继承Iterator接口,是专门给列表使用的迭代器的接口 继承的方法 boolean hasNext(); E next(); void remove(); 注意Iterator有一个default的方法forEachRemaining(Consumer<? super E> action),这个default关键词是1.8才有的,作用是为了在接口...原创 2019-09-19 11:03:17 · 204 阅读 · 0 评论 -
Double数值取整的问题
最近在写Java代码时,要把一个Double型的数值处理成百分比的形式,且保留两位小数。 因为用的是jdk1.8,BigDecimal类的api提供了一个方法setScale String value = "0.336600000000004"; BigDecimal b = new BigDecimal(value.toString()); String content = b.setS...原创 2019-09-30 13:54:45 · 10002 阅读 · 1 评论 -
float和double的范围到底是多少
Java中float占4个字节,32bit。计算范围公式为 ((-1)^S)* (2^(E-127))*(1.M) ,其中S占一位是符号位,E所占8bit是指数位,M占23位是尾数位。 这里一开始(1.M)部分一开始我一直没想明白为什么前面是1,突然有一天脑子开窍了,科学计数法表示的时候小数点前面就必须是1,所以规格化的时候小数点前面是1。 E占8位,所以大小是0-255,但是为了表示小数,指...原创 2019-09-30 14:10:30 · 2507 阅读 · 0 评论
分享