自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 多线程合集

(1)多任务在现实生活中,我们常常同时做多件事情,比如边吃饭边看电视,上厕所玩手机等。看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。(2)多线程比如公路,本来就一条路,后来车多了,会造成拥挤,为了提高效率,充分利用道路,会多加车道。

2023-04-12 21:45:00 783

原创 java.util.Collections 集合工具类

java.util.Collection 集合接口java.util.Collections 集合工具类,方便集合的操作注意:对List集合中的元素排序,需要保证List集合中的元素实现了:Comparable接口对set集合如何排序呢?将set集合转换成List集合package Mapiiiiii;import java.util.*;/*java.util.Collection 集合接口java.util.Collections 集合工具类,方便集合的操作 */public c

2022-04-24 19:38:07 1359

原创 TreeSet对String类型等是可排序的,对于自定义的类型来说,TreeSet无法进行自动排序

TreeSet对String类型等是可排序的;1.TreeSet集合底层实际上是一个TreeMap2.TreeMap集合底层是一个二叉树3.放到Treeset集合中的元素,等同于放到TreeMap集合Key部分4.TreeSet集合中的元素:无序不可重复,但是可以按照元素的大小顺序自动排序,称为:可排序集合package Mapiiiiii;import java.util.TreeSet;public class TreeSetStringtest { public static

2022-04-21 19:40:53 796

原创 Properties集合

Properties集合:1.目前只需要掌握Properties属性类对象的相关方法即可2.Properties是一个Map集合,继承Hashtable,Properties的key和value都是String类型3.Properties被成为属性类对象4.Properties是线程安全的存:setProperty()取:getProperty()package Mapiiiiii;import java.util.Properties;public class PropertiesT

2022-04-21 18:46:55 346

原创 HashMap和Hashtable的区别

HashMap和Hashtable的区别Hashtable集合的key部分允许为null吗?不允许!!!!!!!Hashtable集合的key和value都不能为nullHashMap集合的key和value都可以为nullHashtable方法都带有synchronized;是线程安全的。线程安全有其他方案,这个Hashtable对线程的处理导致效率较低,使用较少了。Hashtable和HashMap一样,底层都是哈希表数据结构Hashtable的初始化容量为11,默认加载因子为:0.75

2022-04-19 19:48:19 241

原创 HashMap集合

HashMap集合:1.HashMap集合底层是哈希表/散列表数据结构2.哈希表是一个怎样的数据结构呢?哈希表是一个数组和单向链表的结合体数组:在查询方面效率很高,随机增删方面效率很低单向链表:随机增删方面效率很高,在查询方面效率很低哈希表将以上两种数据结构结合起来,充分发挥他们各自的优点3.HashMap底层源代码:public class HashMap{//HashMap底层实际上就是一个数组(一维数组)Node<k,v>[] table;//静态的内部类HashM.

2022-04-16 15:09:15 1053

原创 Map接口常用的方法和遍历

Map接口常用的方法put(K key, V value) 向Map集合中添加键值对V get(Object key) 通过key获取valuevoid clear() 清空Map集合。boolean containsKey(Object key) 判断Map中是否包含某个key,则返回 true 。boolean containsValue(Object value) 判断Map中是否包含某个value,则返回 true 。Set<Map.Entry&lt

2022-04-13 20:03:13 1384

原创 演示HashSet和TreeSet集合特点

演示HashSet集合特点:无序不可重复package Collection;import java.util.HashSet;import java.util.Set;/*HashSet集合: 无序不可重复 1.存储时顺序和取出时的顺序不同 2.不可重复 3.放到HashSet集合中的元素实际上是放到HashMap集合的key部分了。 */public class HashSetTest { public static void main(String[]

2022-04-13 18:27:47 197

原创 增强for循环(foreach循环)

增强for循环(foreach循环)语法如下 :for(元素类型 变量名:数组或者集合){System.out.println(变量名);}foreach循环有一个缺点:没有下标,在需要使用下标的循环中,不建议使用foreach循环package Collection;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Foreach { public

2022-04-12 20:08:32 1893

原创 泛型机制<>

1.jdk5.0之后退出的新特性:泛型2.泛型这种机制,只在程序编译阶段起作用,只是给编译器参考的(运行阶段泛型没用)3.使用泛型的好处:第一:集合中存储的元素统一了。第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的向下转型了4.泛型的缺点:导致集合中的元素缺乏多样性!package Collection;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public c

2022-04-12 19:45:22 185

原创 Vector集合源码分析

Vector:1.底层也是一个数组2.初始化容量为103.怎么扩容?扩容后为原容量的2倍; 10—>20---->404.Arraylist集合扩容特点:扩容后为原容量的1.5倍5.Vector中的所欲方法是线程同步的,都带有synchronized关键字,是线程安全的,效率比较低,使用比较少。6.怎么将一个非线程不安全的ArrayList集合转换为线程安全的呢?使用集合工具类:java.util.Collections; java.util.Collection

2022-04-11 19:07:25 403

原创 单链表数据结构

链表的优点:由于链表上的元素在空间存储上内存地址不连续,所以随机增删元素的时候不会有大量元素位移,因此增删效率较高。在以后的开发中,如果遇到随机增删集合中的元素的业务比较多时,建议使用LinkedList。链表的缺点:不能通过数学表达式计算被查找元素的内存地址,每一次查找都是从头节点开始遍历,直到找到为止。所以LinkList集合检索查找的效率较低。ArrayList:把检索发挥到极致。LinkedList:把随机增删发挥到极致。加元素都是往末尾添加,所以ArrayList用的比较多。...

2022-04-07 20:06:56 289

原创 ArrayList 集合初始化及扩容

ArrayList 集合:1.默认初始化容量为10(底层先创建了一个长度为0的数组,当添加第一个元素的时候,初始化容量为10)2.集合底层为一个Object[]数组3.构造方法:new ArrayList();new ArrayList(20);4.ArrayList集合的扩容:原容量的1.5倍。ArrayList集合的底层是数组,怎么优化?尽可能的减少扩容。因为数组扩容效率比较低,建议在使用Arraylist集合的时候预估计元素的个数,给定一个初始化容量。5.数组优点:检索效率比较

2022-04-06 21:33:20 6518

原创 List接口特有的方法

1.List集合存储元素的特点:有序可重复2.List是Collection接口的子接口,那么List接口有自己“特色”的方法;以下只是List接口特有的常用的方法void add(int index ,Object element)Object get(int index)int indexof(Object o)int LastIndexof(Object o)Object remove(int index)Object set((int index ,Object element)

2022-04-06 20:02:42 202

原创 关于集合中元素的删除

关于集合中的remove:- 当集合的结构发生改变时,迭代器必须重新获取,如果还用以前的迭代器,会出现异常:java.util.ConcurrentModificationException- 在迭代集合元素的过程中,不能调用集合对象的remove方法,c1.remove()去删除元素Iterator it=c.iterator();获取的迭代器对象,迭代器是用来遍历集合,此时相当于对当前集合的状态拍了一个快照迭代器迭代对象的时候会参照这个快照进行迭代package Collection;

2022-04-06 17:12:36 358

原创 深入学习contains,remove方法

深入学习contains,remove方法boolean contains(Object o)判断集合中是否包含某个对象o,如果包含返回true,反之返回falsecontains方法是用来判断集合中是否包含某个对象的方法,那么它在底层是怎么判断集合中是否包含的呢?调用了equals方法进行对比,equals方法返回true,就表在这里插入代码片示包含了这个对象package Collection;import java.util.ArrayList;import java.util.C

2022-04-01 21:26:24 210

原创 Collection集合常用方法和迭代器

Collection中能存放什么元素?没有使用泛型之前,Collection中可以存储Object中的所有子类型。使用了泛型之后,Collection中只能存储某个具体的类型。Collection中什么都能存,只要是Object的子类型就可以。集合中不能直接存储基本数据类型,也不能存储java对象,只是java对象的内存地址。Collection中常用的方法boolean add(Object e) 添加元素int size() 获取集合中元素的个数void clear() 清空元素b

2022-03-31 20:33:25 498

原创 Java-异常

什么是异常在实际工作中,遇到的情况不可能是非常完美的,我们会遇到各种各样的问题。软件程序在运行过程中,非常可能遇到各种异常问题,Exception,意思是例外。异常指程序运行中出现的不期而至的各种状况,比如:文件找不到,网络连接失败,非法参数等。异常发生在程序运行期间,它影响了正常的程序执行流程。简单分类检查性异常:最具代表的是用户错误或问题引起的异常运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。错误(error)异常体系结构java把

2022-03-28 19:59:39 86

原创 java内部类

内部类内部类就是在一个类的内部再定义一个类。比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类。1.成员内部类2.静态内部类3.局部内部类4.匿名内部类package java3;public class Outer { private int id=123456; public void out(){ System.out.println("这是外部类的方法"); } class Inner{

2022-03-28 14:20:34 82

原创 抽象类和接口

抽象类(abstract)abstract修饰符可以用来修饰方法也可以用来修饰类,如果修饰方法,那么该方法就是抽象方法,如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法只有方法的声明,没有方法的实现,他是用来让子类实现的。子类继承抽象类,那么必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。package java3;//abstract 抽象类public

2022-03-27 20:44:39 76

原创 static关键字

static关键字package java3;public class Demo04 { private static int age=18; //静态变量 private int year=2020; //非静态变量 public static void say(){ System.out.println("静态方法"); } public void run(){ say();//非静态方法可以调用静态方法

2022-03-27 20:06:06 53

原创 Java-封装 继承 多态

封装(数据的隐藏)通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。记住这句话就够了:属性私有,get/setpackage MIanxing;/*封装的优点: 1.提高程序点的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.系统可维护增加了 */ //属性私有 privatepublic class Demo02 { private String name; private int age;

2022-03-24 19:41:25 799

原创 Java类与对象

一.什么是面向对象面向过程 & 面向对象- 面向过程思想:步骤清晰简单,第一步做什么,第二步做什么。适合处理一些较为简单的问题。- 面向对象思想:物以类聚,分类的思维模式。先设计,对现实中客观事物进行分类,创建出类,在类中定义功能,创建出具体的对象,让对象去做具体的事情。对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。什么是面向对象面向对象编程(Object-Oriented Pro

2022-03-21 20:15:00 380

原创 Java 数组

一.什么是数组?数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问。二.数组的声明与创建首先必须声明数组变量,才能在程序中使用数组。声明数组变量语法如下:dataType[] arrayRefVar; //首选的方法或dataType arrayRefVar[]; //效果相同java语言使用new操作符来创建数组,语法如下:dataType

2022-03-18 20:27:52 91

原创 Java方法

一.什么是方法?System.out.printIn(),他是什么呢?System是一个类,out是对象,printIn是方法。java方法是语句的集合,他们在一起执行一个功能;方法是解决一类问题的步骤的有序集合。方法包含于类或对象中。方法在程序中被创建,在其他地方被引用。设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。就是一个方法只完成一个功能。方法的命名规则:驼峰命名法。package Javaff;public class Demo01 { publ

2022-03-17 15:59:05 463

原创 break continue

break continuebreak在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。public class Demo08 { public static void main(String[] args) { int i=0; w

2022-03-15 18:01:28 81

原创 java-for循环

for循环for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环执行的次数是在执行前就确定的。语法格式如下:for(初始化;布尔表达式;更新){//代码语句}练习public class Demo07 { public static void main(String[] args) { //计算0-100之间的奇数和,偶数和 int o=0; int j=0; for (int i = 0; i

2022-03-14 15:58:12 37553

原创 java-while和do while循环

while 循环while是最基本的循环,结构为:while(布尔表达式){//循环内容}只要布尔表达式为true,循环就会一直执行下去。我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。少部分情况需要一直执行,比如服务器的请求响应监听等。循环条件一直为true就会造成死循环,我们正常的业务编程中应该尽量避免死循环。死循坏会影响程序性能或者造成程序卡死奔溃!public class Demo06 { public static void main(S

2022-03-13 19:34:06 523

原创 switch多选择结构

switch多选择结构

2022-03-12 20:43:33 371

原创 if选择结构

java流程控制if选择结构if单选择结构语法:if(布尔表达式){//如果布尔表达式为true将执行的语句}import java.util.Scanner;public class Demo04 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入数据:");

2022-03-12 20:03:38 690

原创 java流程控制

java Scanner

2022-03-11 17:50:24 81

原创 java基本运算符

java基本运算符算术运算符:+,-,*,/,%,++,–赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>条件运算符:?:扩展赋值运算符:+=,-=,*=,/=public class demo22 { public static void main(String[] args) {

2022-03-09 21:10:26 310

原创 java变量,常量,作用域

一.变量变量是什么:变量就是可以变化的量。java是一种强类型语言,每个变量都必须声明其类型。java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。type varName [=value] [{,varName[=value]}];//数据类型 变量名=值;可以使用逗号隔开来声明多个同类型变量。注意事项每个变量都有类型,类型可以是基本类型,也可以是引用类型。变量名必须都是合法的标识符。变量声明是一条完整的语句,因此每一个声明都必须以分号结束。二.变量作

2022-03-08 20:33:08 52

原创 java数据类型转换

数据类型转换由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。低-------------------------------------------------------高byte,short,char—>int—>long—>float—>double运算中,不同类型的数据要先转换为同一类型,然后进行计算。分类:1. 强制类型转换 2. 自动类型转换public class demo1 { public static void mai

2022-03-08 19:49:10 65

原创 java数据类型02拓展

拓展整数拓展public class demo1 { public static void main(String[] args) { //整数拓展,进制 int a1=10; int a2=010; //八进制0 int a3=0x10; //十六进制0x int a4=0x11; int a5=0b10; //二进制0b System.out.println(a1);

2022-03-07 21:50:25 115

原创 数据类型02

java基本数据类型

2022-03-07 20:04:08 79

原创 java基础语法01

关于自己总结的一些java基础语法,学习完善中!java基础语法01一.注释单行注释多行注释文档注释//单行注释/* 多行注释 *//** 文档注释@Author 深海脆脆鲨 */ 标识符java所有的组成部分都需要名字。类名,变量名,以及方法名都被称为标识符。abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelsee

2022-03-06 20:35:31 130

原创 MarkDown语法学习

MarkDown语法简单学习

2022-03-03 20:06:49 213

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除