
Java深入,新特性
文章平均质量分 94
恒奇恒毅
Javaer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
摒弃Date、Calendar,使用新的日期API
感谢传智播客老师深入细致的讲解 为什么会出现新的日期类API 将java.util.Date类束之高阁才是正确之道 -> Tim Yates 在Java面世之初,标准库就引入了两种用于处理日期和时间的类,它们是java.util.Date和java.util.Calendar,而前者堪称类糟糕设计的典范,浏览API可以发现,从Java1.1开始,Date类中的所有方法就已经被弃用,Java1.1推荐采用Calendar类处理日期和时间,但是这个类同样存在不少问题。 对于日期的计算困难问题. 毫秒值与转载 2021-05-24 13:43:36 · 1365 阅读 · 0 评论 -
HashMap
HashMap 1.HashMap简介 HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突**(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)**而存在的(“拉转载 2021-05-19 19:13:42 · 660 阅读 · 0 评论 -
关于类初始化的一个诡异问题
圣思园张龙老师关于类加载器的一个例子。 这个打印的是1,1 这个打印的是1,0 造成以上的区别的原因就在于:类加载的时候先准备(静态变量赋默认值),然后初始化(赋值或者静态代码块),实例化。 类的初始化只有在以下六种情况(主动使用)才会发生: 创建类的实例,并且不影响子类的初始化 访问某个类或者接口的静态变量或者赋值 访问类的静态方法 反射,比如Class.fo...原创 2019-09-29 15:19:06 · 211 阅读 · 0 评论 -
集合框架总结
集合框架的基本要点 1、Java容器类库的简化图:下面是集合类库更加完备的图。包括抽象类和遗留构件(不包括Queue的实现): 图1 集合框架类系图 2、ArrayList初始化时不可指定容量,如果以new ArrayList()方式创建时,初始容量为10个;如果以new ArrayList(Collection c)初始化时,容量为c转载 2016-06-15 17:14:55 · 394 阅读 · 0 评论 -
Java深入(面试常见题)
笔试题之Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他。有些题来自网上搜集整理,有些题来自传智播客学员面试后的反馈,说真的,少数一些网上的面试题,我真怀疑其是否还有存在价值! 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有转载 2015-12-29 08:27:05 · 4369 阅读 · 1 评论 -
深入Java集合学习系列:ArrayList的实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量转载 2016-05-20 17:19:49 · 337 阅读 · 0 评论 -
深入Java集合学习系列:LinkedHashMap的实现原理
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代转载 2016-05-20 17:18:09 · 348 阅读 · 0 评论 -
深入Java集合学习系列:LinkedHashSet的实现原理
1. LinkedHashSet概述: LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少一个线程修改了该Set,则它必转载 2016-05-20 17:15:46 · 747 阅读 · 0 评论 -
深入Java集合学习系列:HashSet的实现原理
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet转载 2016-05-20 17:13:41 · 308 阅读 · 0 评论 -
深入Java集合学习系列:HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2016-05-20 17:09:53 · 317 阅读 · 0 评论 -
Java深入(高新技术)(五):注解
深切怀念传智播客张孝祥老师,特将其代表作——Java并发库视频研读两遍,受益颇丰,记以后阅 SuppressWarnings:@SuppressWarnings("deprecation")告诉编译器不要报告这个警告 Deprecated:方法或者类打上这个注解表示过时的 Override:重写方法,如果你的方法定义不符合重写,那么警告 注解相当于一种标记,在程序中加了注解就等于为程序原创 2015-12-28 09:24:19 · 382 阅读 · 1 评论 -
Java深入(高新技术)(三):枚举
深切怀念传智播客张孝祥老师,特将其代表作——Java并发库视频研读两遍,受益颇丰,记以后阅 枚举 l 为什么要有枚举 Ø 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成intweekday = 0;或即使使用常量方式也无法阻止意外。 Ø 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译原创 2015-12-28 08:54:53 · 405 阅读 · 0 评论 -
Java深入(高新技术)(八):代理技术AOP
深切怀念传智播客张孝祥老师,特将其代表作——Java并发库视频研读两遍,受益颇丰,记以后阅 l 生活中的代理 Ø 武汉人从武汉的代理商手中买联想电脑和直接跑到北京传智播客旁边来找联想总部买电脑,你觉得最终的主体业务目标有什么区别吗?基本上一样吧,都解决了核心问题,但是,一点区别都没有吗?从代理商那里买真的一点好处都没有吗? l 程序中的代理 Ø 要为已存在的多个具有相同接口的目原创 2015-12-28 11:25:20 · 498 阅读 · 1 评论 -
Java深入(高新技术)(一):面向接口编程
深切怀念传智播客张孝祥老师,特将其代表作——Java并发库视频研读两遍,受益颇丰,记以后阅 我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到“面向接口编程”这个短语,那么它是什么意思?有什么思想内涵?和面向对象编程是什么关系?本文将一一解答这转载 2015-12-28 08:45:38 · 1492 阅读 · 0 评论 -
Java深入(高新技术)(二):开发环境、静态导入、可变参数、增强for循环、基本数据类型的自动拆箱与装箱、享元模式
深切怀念传智播客张孝祥老师,特将其代表作——Java并发库视频研读两遍,受益颇丰,记以后阅 基础最重要,但是高级技术又能从反面强化基础。 IDE开发工具都支持使用工程化方式管理一个项目的程序开发过程,一般来说一个相对独立的项目就是一个工程,一个项目中涉及的多个java文件,资源文件等用一个工程进行管理。(在这里可以看看以前工作间中的某个工程的结构),在不使用工程管理的情况下,如果一个项目中原创 2015-12-28 08:52:27 · 413 阅读 · 0 评论 -
Java深入(高新技术)(七):类加载器
深切怀念传智播客张孝祥老师,特将其代表作——Java并发库视频研读两遍,受益颇丰,记以后阅 自己编写的类只会在用到的时候才载入,称为依需求载入;基础类库是一次性载入的,称为预先载入,这是因为基础类库里头大多是Java程序执行时必备的类,所以为了不要老是做浪费时间的I/O动作(读取文档系统,然后载入记忆体),预先载入这些类库会让Java应用程序在执行时速度稍快一些。依需求载入时,仅仅声明一个类原创 2015-12-28 09:28:46 · 547 阅读 · 1 评论 -
Java深入(高新技术)(六):泛型
深切怀念传智播客张孝祥老师,特将其代表作——Java并发库视频研读两遍,受益颇丰,记以后阅 l Jdk 1.5以前的集合类中存在什么问题 ArrayListcollection = new ArrayList(); collection.add(1); collection.add(1L); collection.add("a原创 2015-12-28 09:26:12 · 375 阅读 · 1 评论 -
Java深入(高新技术)(四):反射、Class、Constructor、Method、Field、数组的反射、JavaBean
反射的基石àClass类 l 对比提问:Person类代表人,它的实例对象就是张三,李四这样一个个具体的人,Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class。对比提问:众多的人用一个什么类表示?众多的Java类用一个什么类表示? Ø 人àPerson Ø Java类àClass l Class类代表Java类,它的各个实例对象又分别对应什原创 2015-12-28 09:05:06 · 655 阅读 · 0 评论