- 博客(15)
- 收藏
- 关注
原创 List集合和Set集合
List中元素存取是有序的、可重复的;Set集合中元素是无序的,不可重复的。 CopyOnWriteArrayList:COW的策略,即写时复制的策略。适用于读多写少的并发场景 Set集合元素存取无序,且元素不可重复。 HashSet不保证迭代顺序,线程不安全;LinkedHashSet是Set接口的哈希表和链接列表的实现,保证迭代顺序,线程不安全。 TreeSet:可以对Set集合中的元素排序,元素以二叉树形式存放,线程不安全。 3.2 ArrayList、L
2022-09-02 18:32:57
452
原创 【无标题】
为什么使用ConcurrentHashMap而不是HashMap或Hashtable? HashMap的缺点:主要是多线程同时put时,如果同时触发了rehash操作,会导致HashMap中的链表中出现循环节点,进而使得后面get的时候,会死循环,CPU达到100%,所以在并发情况下不能使用HashMap。让HashMap同步:Map m = Collections.synchronizeMap(hashMap);而Hashtable虽然是同步的,使用synchronized来保证线程安全,但在线程竞争激
2022-09-02 18:31:47
184
原创 【无标题】Map的实现类的介绍
HashMap基于散列表来的实现,即使用hashCode()进行快速查询元素的位置,显著提高性能。插入和查询“键值对”的开销是固定的。可以通过设置容量和装载因子,以调整容器的性能。 LinkedHashMap, 类似于HashMap,但是迭代遍历它时,保证迭代的顺序是其插入的次序,因为它使用链表维护内部次序。此外可以在构造器中设定LinkedHashMap,使之采用LRU算法。使没有被访问过的元素或较少访问的元素出现在前面,访问过的或访问多的出现在后面。这对于需要定期清理元素以节省空间的程序员
2022-09-02 18:31:11
130
原创 【无标题】关于finally
finally不管有没有异常都要处理 当try和catch中有return时,finally仍然会执行,finally比return先执行 不管有木有异常抛出, finally在return返回前执行 finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前确定的 注意:finally中最好不要包含return,否则程序会提前退出
2022-09-02 18:30:24
132
原创 面向对象的五大基本原则(solid)
S单一职责SRP:Single-Responsibility Principle 一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合,高内聚在面向对象原则的引申,将职责定义为引起变化的原因,以提高内聚性减少引起变化的原因。 O开放封闭原则OCP:Open-Closed Principle 软件实体应该是可扩展的,而不是可修改的。对扩展开放,对修改封闭 L里氏替换原则LSP:Liskov-Substitution Principle 子类必须能够替换其基类。
2022-09-02 18:29:31
87
原创 【无标题】创建客户端
package text; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.net.URL; pub
2022-09-01 21:38:00
61
原创 【无标题】常量的注意事项
1.给byte,short,char类型变量进行赋值操作时,如果右边的初始化值是字面值常量,且还在该数据类型的取值范围内,JVM的编译器自动在编译时期将其优化为byte类型数据,我们将这一优化称之为"常量优化机制" 2.给变量进行赋值操作时,如果右边的初始化值是一个数学运算式子,且运算的符号两边都是字面值常量和运算后的结果还在该数据类型的取值范围内,JVM的编译器会将这一运算过程由运行时期提前至编译时期,在生成.class文件已运算完毕,我们将这一优化称之为"常量优化机制"
2022-09-01 21:33:45
54
原创 【无标题】
类型转换 类型转换 含义:数据类型之间的转换 分类: 基本类型间的转换 引用类型间的转换(暂不涉及) 基本类型和包装类型间的转换(暂不涉及) 基本类型和字符串类型间的转换(暂不涉及) 基本类型转换 含义: 将基本类型的数据进行类型转换 分类: 隐式转换(自动转换) 显式转换(强制转换) 格式: 数据类型A 变量名 = (数据类型A)数据类型B的数据值; 注意: 基本类型转换的格式适用于自动转换,也适用于强制转换,在自动转换时可以省略不写 自动转换(隐式转换)
2022-09-01 21:32:36
46
原创 整数型的诠释
int是最常用的整数类型,因此在通常请下,直接给出一个整数值默认就是int类型。除此之外,有 如下三种情形必须指出。 1)如果直接将一个较小的整数值(在byte或short类型的取值范围内)赋给一个byte或者short类 型的变量,JVM会自动把这个整数值转换成byte或者short类型来处理。 2)如果使用一个巨大的整数值(超出了int类型的取值范围,且在long的取值范围内)时,JVM不会自动把这个整数值当成long类型处理。如果希望JVM把一个整数值当成long
2022-09-01 21:28:37
190
原创 【无标题】字节和位
**字节(Byte):**是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于有八 位, 也表示一些计算机编程语言中的数据类型和语言字符。 **位(bit):**是数据存储的最小单位。也就是二进制。二进制数系统中,每个0或1就是一个位,叫 做bit(比特),其中8 bit 就称为一个字节(Byte)。 转换关系: 8 bit = 1 Byte 1024 Byte = 1 KB 1024 KB = 1 MB
2022-09-01 21:27:43
48
原创 【无标题】对象的概念
1. 什么是对象(具体的定义状态(属性)和行为(方法)的一个实体) 一切客观存在的事物都是对象 2.对象的组成 属性 有什么(描述对象) 对象的属性也可以是对象 方法 能做什么(自己使用 别人使用) 3.计算机世界中的对象(连续的存储空间) 类的概念 1. 类是什么 具有相同行为和状态的对象的集合 a)类是对大量共性的抽象 b)类是客观事物在人脑中的主观反映 c)
2022-09-01 21:19:42
78
原创 【无标题】
一、抽象类与抽象方法 1、抽象类 *抽象类把多种事务(类),也就是多个类的共性的内容抽取出来。可以只表示相同的相关功能,而不给出具体实现。 *抽象类的目的是提供一个合适的超类,以派生其他类。抽象类作为继承层次结构中的超类,又被称为抽象超类。 *用关键字abstract修饰的类称为abstract类(抽象类)。 例如:abstract class A{ …} *抽象类的特点 (1)对于抽象类,不能直接使用实例化对象,即不能使用new运算符创建该类的对象,只能先创建其子类,由子
2022-09-01 21:17:22
47
原创 【无标题】
1.控制语句: *控制选择结构语句;if 、if else、switch 选择结构 *控制循环结构语句:for、while、do while 循环结构 *改变控制顺序:break、continue 控制循环结构 所有控制语句都是可以嵌套使用的,只要合理就行 if语句:四种编写方式 第一种 if(布尔表达式){ java语句; java语句; ... } 第二种 一定会执行 if(布尔表达式){ java语句; java语句; 2.字符
2022-09-01 21:16:21
55
原创 【无标题】
1 关键字 关键字(keyword)的定义和特点 定义:被java语言赋予了特殊含义,用做专门用途的字符串(单词) 特点:关键字中所有字母都为小写 保留字(reserved word) 定义:现有java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符要避免使用这些保留字 goto const 2.2 标识符(ldentifier) 定义:java对各种变量,方法和类等要素命名时使用的字符序列称为标识符 技巧:凡是可以自己起名字的地方都叫标识符
2022-09-01 21:14:52
42
原创 【无标题】
算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。 提升规则: byte类型, short 类型和 char 类型将被提升到 int 类型,不管是否有其他类型参与运算。 整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型 等级顺序: byte,short,char --> int --> long --> flfloat --> double
2022-09-01 21:11:50
45
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人