Java进阶
文章平均质量分 88
@司马懿
越努力越公平!
展开
-
HashMap底层原理解析
Map数组数组如果想要放一个数值, 或者获取一个值,必须根据数组【i】的下标:当hash.put("1","2")时,决定这个Entry对象位置的是这个 key ,然后根据这个 key 经过 hash 计算产生一个下标 index :关系暂时理解如下图所示 那么当map中第一次放值后,第二个值相同的index值,怎么放?JDK1.7头插法会为第一个值,增加一个属性 next 指针的属性,设置下一个节点下标,其中这个next 代表的是Tablei[nde...原创 2021-05-25 11:02:15 · 139 阅读 · 3 评论 -
Stream 某些API
原创 2019-11-28 17:45:54 · 100 阅读 · 0 评论 -
ConcurrentHashMap数据结构分析
下面是ConcurrentHashMap的数据结构,并比较HashTable并发场景:由此可见,ConcurrentHashMap当中每个Segment各自持有一把锁。在保证线程安全的同时降低了锁的粒度,让并发操作效率更高。get 与put:https://www.jianshu.com/p/1e1a96075256...原创 2019-11-25 10:08:11 · 603 阅读 · 0 评论 -
java中线程的有关探讨
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么...转载 2019-01-12 11:28:01 · 169 阅读 · 0 评论 -
Java9
1.对Java9的初步了解Java9-jigsaw拼图相当于Java8-lambda表达式。2. 原本整个程序就是一个整体。 a) 在Java8及更老的版本当中,集合,Scanner等,都放在了rt.jar包。 大小:60.6 MB而在Java9当中,这些东西都不在一个rt.jar包当中了,而是设置在了J...原创 2018-08-23 16:53:19 · 165 阅读 · 0 评论 -
13.Stream流
函数式接口不光有supplier接口、consumer接口,还有以下:Predicate表示条件判断可以用Java.Util.functiion.Predicate<T>接口抽象方法: Test: 测试:参数代表需要对什么数据进行检测,返回值是boolean值。默认方法: And 并且:两者条件必须都满足,“并且”--...原创 2018-08-19 22:01:32 · 337 阅读 · 0 评论 -
12.函数式接口、方法引用
复习:Lamda的省略规则: 接口名称 方法名称可以省略 参数类型可以省略 如果参数有且仅有一个,那么括号可以省略 如果语句有且仅有一个,那么无论有没有返回值,return可以省略2、函数式接口a. 概念:有且仅有一个需要实现的抽象方法的接口b. 作用: 1)可以当做普通接口使用:implements、@Override2)可以当做Lambda使用的...原创 2018-08-19 21:59:58 · 915 阅读 · 0 评论 -
11.网络编程
网络编程入门软件结构C/S结构(Client:Server)B/S结构(Browser:Server)网络通信协议计算机可以分为5层或者7层协议分类TCP(传输控制协议):类似打电话,对方只有接收到电话,才能传达信息。可靠UDP(用户数据协议):类似一种广播性质,不管有没有接收到信息,我只管广播。不可靠。网络编程三要素1).协议:通信规则。2).IP地址:互联网协...原创 2018-08-16 21:57:28 · 174 阅读 · 0 评论 -
10.缓冲流、转换流、序列化流
缓冲流(高效流)1.缓冲字节流 概念:字节缓冲流(输入、输出):BufferedInputStream(输入)、 BufferedOutputStream(输出)。 构造方法 public BufferedInputStream(InputStream in): 将参数普通的字节输入流,包装成为缓冲的字节输入流。 public BufferedOut...原创 2018-08-15 22:16:54 · 425 阅读 · 0 评论 -
7.字节流、字符流
字节流IO流分类和功能:按照数据流向:输入和输出流(读进来,写出去)按照数据类型:字节流和字符流底层原理:一切皆为字节字节输出流的最高抽象父类:java.io.OutputStream:是字节输出流的最高抽象父类其中,常用的方法:常用的子类是:java.io.FileOutputStream。构造方法:public FileOutputStream(Stri...原创 2018-08-15 22:15:34 · 132 阅读 · 0 评论 -
6.java.io.File
File类计算机当中一切数据都是字节,文件就是硬盘当中用来存放字节数据的单位。Windows当中表示路径: D:\abc\Hello.txtLinux/macOS当中表示路径: /Users/someone/abc/Hello.txtjava.io.File对象可以表示文件或者文件夹。表示文件:D:\abc\Hello.txt表示文件夹:D:\abc注意:绝对不...原创 2018-08-15 22:14:18 · 136 阅读 · 0 评论 -
5.异常
异常的继承体系:异常继承体系为:异常的根类是 java.lang.Throwable,其下有两个子类:java.lang.Error 与 java.util.Exception 。而Exception又分为编译时期异常:checked异常,与运行时期异常:runtime异常。 Error:表示不可修复的恶性的错误,只能通过修改代码规避错误的产生,通常是系统级别的,所以很严重。E...原创 2018-08-07 21:57:36 · 178 阅读 · 0 评论 -
4.Map遍历
Map 集合-Map集合特点Map 的特点。Map每个元素由键与值两部分组成 Map键不能重复,每个键对应一个值 键和值可以为nulljava.util.Map<K, V>是一个接口,注意和Collection接口并没有直接联系。第一个泛型代表:键是什么类型第二个泛型代表:值是什么类型二者可以相同,也可以不同。key-(学号)不能重复value-(姓名)...原创 2018-08-07 21:55:34 · 1394 阅读 · 1 评论 -
3.常见的数据结构
List集合java.util.List是Collection接口的子接口特点它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。...原创 2018-08-05 21:02:49 · 454 阅读 · 0 评论 -
2.Collection体系,集合遍历,泛型、Collections
-Collection集合1.请简述集合框架。集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map。Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特...原创 2018-08-05 20:58:07 · 211 阅读 · 0 评论 -
1.实体类中为什么要重写equal()方法
自顶向下的学习原则Object类最高父类名:Java.lang.ObjecttoStringjava.lang.Object是所有类的最高父类,其中有什么方法,所有的子类全都具有(包括数组)。备注:直接打印对象名称,得到的是一个“地址哈希值”。Object类当中定义了一个toString方法:public String toString():没有参数,可以将当前对象转换成为字符...原创 2018-08-03 18:39:51 · 479 阅读 · 0 评论