自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 day26 java Stream

①Stream 自己不会存储元素。②Stream 不会改变源对象。每次处理都会返回一个持有结果的新Stream。③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。说明:可以把Stream想象成一条流(流水线)在流的上面有很多操作(过滤,转换,排序,.....)

2024-04-24 20:32:00 452

原创 day26 java lambda

lambda表达式 :对匿名内部类的对象的一种简写lambda表达式的格式 : (形参列表) -> {方法体}说明 :-> : lambda操作符。

2024-04-24 19:24:58 680

原创 day19 java Map(双列集合)

Map(双列集合)|---------HashMap(主要实现类,底层是hash表 - 线程不安全的)|-----------LinkedHashMap(可以按照添加元素的顺序进行排序)|---------Hashtable(底层也是hash表 不过是线程安全的)|-----------Properties(主要读取配置文件-后面讲)|---------TreeMap(用来对key进行排序)说明:1.Map中存放的是键值对。

2024-04-23 21:10:03 980

原创 day18 java ​​​​​​​集合Collection的List和Set

Collection分成List和Set|-------List : 存储的元素是有序的并且可以重复|-------Set : 存储的元素是无序的并且不可以重复。

2024-04-23 20:49:10 1222

原创 day17 java 单列集合Collection与迭代器Iterator

集合:1.集合是Java提供的一种容器.集合是用来存储对象.2.集合和数组的区别①数组的长度是不可变的,集合的长度可变.②数组可以存放基本数据类型的数据和对象 集合只能存储对象.3.集合主要分Collection(单列集合)和Map(双列集合-键值对)4.Collection分成List和Set|-------List : 存储的元素是有序的并且可以重复|-------Set : 存储的元素是无序的并且不可以重复。

2024-04-23 18:53:38 1048

原创 day24 java IO流 对象流 序列化与反序列化

那么我们可以通过显示声明SUID的方式让SUID不变(本质上序列化对象所属性的类 在对象序列化后不要修改)。注意:如果对象要序列化那么对象所属性的类及类中的属性都必须实现Serializable接口。发生错误的原因 :将对象序列化后存储的SUID值和反序列化后类中的SUID的值不匹配。如果要读取磁盘上的对象或者通过网络接收对象那么就需要反序列化。序列化时的SUID和反序列化时的SUID要保持一致。1.SUID是如何变的 如何不让SUID的值发生变化?序列化:将内存中的对象写到磁盘中。

2024-04-22 21:22:40 282

原创 day24 java IO流 转换流

注意:读取的文件的编码集如果本身就是UTF-8那么在InputStreamReader中编码集只能是UTF-8。转换编码集(可将读取的内容的编码集(UTF-8)在写到另一个文件时内容转换成另一种编码集(GBK))读取内容时可以将字节流转成字符流,写内容时可以将字符流转成字节流。

2024-04-22 21:06:02 325 1

原创 day24 java IO流 缓冲流 BufferedReader,BufferedWriter

/先关外面的 先脱外套。//再关里面的 再脱内衣。数据的流向: 写到bw(缓冲区)-->fw ->"d:/1.txt"此时,我先把fw关闭了,bw的数据无法输出了。:创建一个 新的缓冲输入流。:创建一个 新的缓冲输入流。: 创建一个新的缓冲输出流。: 创建一个新的缓冲输出流。

2024-04-22 20:50:09 424

原创 day24 java IO流 四个节点流

当你创建一个流对象时,必须传入一个文件路径。对于FileReader和FileInputStream 来说,如果该文件不存在,则报FileNotFoundException。如果传入的是一个目录,则会报IOException异常。

2024-04-22 20:32:38 1013 1

原创 day24 java File类 与 IO流概述

1.在Java程序中一个文件(a.txt b.png c.mp4 d.avi)或一个目录(文件夹)就是一个File类的对象。2.File类只能对文件或目录进行操作(比如:创建,删除,修改,查找......)不能对内容做操作。:是对一个已存在的流进行连接和封装,通过所封装的流的功能调用实现数据读写。:以字节为单位,读写数据的流。:可以从或向一个特定的地方(节点)读写数据。根据IO流的角色不同分为:节点流和处理流。:以字符为单位,读写数据的流。流的分类: 流的流向 :输入流,输出流。

2024-04-22 18:50:39 267 1

原创 day22 java多线程 线程安全问题解决方案

面试题]继承Thread和实现Runnable有什么区别?1.实现接口和继承类 - 实现接口更灵活因为可以多实现。2.线程安全同步代码块 :继承Thread : 锁不可以是this实现Runnable : 锁可以是this同步方法继承Thread : 同步方法要使用静态同步方法--锁是当前类的运行时类(类信息)实现Runnable : 同步方法不是静态的 - 锁是this3.共享数据(Thread要创建好几个对象,Runnable的实现类创建对象只用创建溢出)

2024-04-19 21:29:58 392

原创 day22 java多线程 构造方法 常用方法 守护线程 sleep和wait方法

public Thread() :分配一个新的线程对象。public Thread(String name) :分配一个指定名字的新线程对象。public Thread(Runnable target) :分配一个带有指定目标新的线程对象。public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字。

2024-04-19 20:49:49 443

原创 day22 java 多线程 创建多线程的方式

/定义指定线程名称的构造方法//调用父类的String参数的构造方法,指定线程的名称/*** 重写run方法,完成该线程执行的逻辑*/@Overridei < 10;i++) {System.out.println(getName()+":正在执行!"+i);//创建自定义线程对象MyThread mt = new MyThread("新的线程!");//开启新线程mt.start();//4.去创建Runnable接口的实现类的对象。

2024-04-19 20:09:33 213

原创 day16 java 包装类

包装类的作用: 包装类可以弥补基本数据类型在面向对象的环境中的局限性和便利性。包装类 : Java给每种基本数据类型都创建了一个对应的类 该类叫作包装类。自动拆箱 :将包装类的类型转成基本数据类型。自动装箱 :将基本数据类型转成包装类的类型。

2024-04-11 20:06:35 401

原创 day16 java object中equals、finalize、

1.Object类是所有类的父类。2.一个类如果没有显示继承其它类默认继承Object类。

2024-04-11 19:33:59 587

原创 day15 java 异常类

-------Exception :表示普通异常是可以被catch到的。|------运行时异常(非受检异常)(RuntimeException及子类):在程序运行的时候发生的异常。|------编译时异常(受检异常):在程序编译的时候发生的异常-不一定会真正的发生异常只是有可能会发生异常。1.如果try中的代码没有发生异常 那么会执行完try中所有的代码后跳到finally中执行finally中的代码。2.如果try中的代码发生了异常 那么在try中发生异常的代码后面的try中代码不再执行。

2024-04-09 18:38:35 413

原创 day15 java枚举

4.如果我们要在枚举类中自定义属性 那么建议该属性用final修饰(因为对象都是常量 所以对象中的属性也要常量但不要被static修饰)。4.枚举类型[] values():返回该枚举类的所有的常量对象,返回类型是当前枚举的数组类型,是一个静态方法。2.创建对象 - 枚举类中声明的对象必须放在类中的首行。1.String toString(): 默认返回的是常量名(对象名),可以继续手动重写该方法!5.枚举类型 valueOf(String name):根据枚举常量对象名称获取枚举对象。

2024-04-09 16:48:18 290

原创 day14 内部类(重点看匿名内部类)

内部类:在一个类A的内部再定义一个类B。类B叫作内部类,类A叫作外部类。内部类的作用:1.内部类可以很好的实现类的隐藏。2.可以实现多继承的效果。3.可以很好的实现高内聚低偶合内部类可以被四种权限修饰符修饰。外部类只能被public和缺省的修饰内部类可以调用外部类私有的成员。外部类不能调用内部类私有的成员。

2024-04-08 20:39:57 531 1

原创 day14 java接口

接口:对不同类型不同事物相同功能的描述(一定程序上解决了单继承的局限性)接口可以理解成一种标准 规范当类实现这个接口就实现了这个标准或规范接口的格式:权限修饰符 interface 接口名{权限修饰符只能是public和缺省的。说明:1.类和接口是并列的结构。2.接口中有JDK1.8之前 :常量,抽象方法JDK1.8之后: 常量,抽象方法,静态方法,默认方法3.接口不能实例化,接口中没有构造器。4.接口和类的关系 :实现关系而且多实现。

2024-04-08 18:36:18 622

原创 day13 java final 类和对象的初始化执行顺序

面试题]请简述final关键字final修饰类(最终的类)-太监类:该类不能被继承。(比如:String StringBuilder,....)final修饰方法(最终的方法):不能被重写final修饰的变量 :值不能被修改final修饰的属性:没有默认值要求赋值的方式 :①显示赋值 ②代码块赋值 ③构造器赋值-一定要保证无论调用哪个构造器都可以给该变量赋值。

2024-04-07 19:54:09 511

原创 day13 java代码块 抽象abstract

abstract修饰类:抽象类1.抽象类不能被实例化。2.抽象方法所在的类必须为抽象类。3.抽象类中不一定有抽象方法4.抽象类中有构造器(抽象类就是一个类只不过该类不能被实例化)abstract修饰方法 :抽象方法1.抽象方法没有方法体。2.抽象方法必须被子类实现。注意:1.抽象类的子类必须实现父类中所有的抽象方法。如果抽象方法被父类已经实现那么子类不用再实现该抽象方法。2.抽像类中不一定有抽象方法但抽象方法一定在抽象类中。abstract和final不能一起修饰方法和类。

2024-04-07 19:29:10 391

原创 day13 java多态 动态绑定技术

第三个对象 d在MyClass类中找匹配的方法发现形参列表没有符合的,那就找最符合的,method(Father f)中的形参是Daughter d的父类,直接调用了method(Father f),但是发现运行看右边MySub类中重写了method(Father f),所以调用MySub类中的方法输出daughter。运行时动态绑定:再看这个对象xx的运行时类型,如果这个对象xx的运行时类重写了刚刚找到的那个匹配的方法,匹配的原则:看实参的编译时类型与方法形参的类型的匹配程度。编译看左边 : 匹配方法。

2024-04-07 18:50:08 351

原创 day12 java super的使用 & Object类toString方法 & 多态的使用(instanceof)

当我们创建B类的对象时 用该对象和上面三个类instanceof发现 和B类结果为true 和A类(父类)结果为true(向上(当前类继承上面所有的)不向下(当前类和子类没关系))注意:如果调用父类的方法时前面没有加"super."该方法就会产生不确定因素---一旦子类重写就变成调用子类重写的方法。注意:如果调用父类的属性时前面没有加"super."该属性就会产生不确定因素-一旦子类声明了和父类一样名字的属性,那么调用的就是子类的。如果没有重写父类的方法那么调用父类的方法时"super."可加可不加。

2024-04-07 18:31:01 712

原创 day11 java不同对象的关联与内存分析 JavaBean用途及讲解 import导入包

内存图:对象的属性是另一个对象时,在堆内存内该属性对应的值是另一个对象的首地址(指向另一个堆内存内另一个对象),两对象建立了联系,可以根据箭头间接调用。

2024-04-03 08:58:05 139

原创 day11 java继承性 方法重写

就可以将子类中重复的内容抽取到父类-这时子类就可以继承父类。当子类继承父类后如果子类对父类中的方法不满意(无法满足子类需求)可以考虑方法的重写。4.如果是跨包的子类 父类中缺省的方法也不能被子类重写因为权限-子类看不到。当子类重写父类的方法后再通过子类的对象调用此方法调用的是子类重写的方法。1.父类被重写的方法和子类重写的方法,方法名和形参列表必须一致。3.子类重写方法的权限修饰符>=父类被重写方法的权限修饰符。2.父类被重写的方法的返回值和子类重写方法的返回值。可以直接将父类中要被重写的方法。

2024-04-02 20:49:30 925

原创 day10 java封装性

为什么有封装性?为了保护数据不被随意修改,隐藏类的实现细节。增强了代码的安全性和可维护性。该隐藏隐藏 该暴露暴露封装性的实现?让调用者只能通过方法操作属性。可以在方法中加入一些限制条件或数据检查的操作。封装性的直接体现:①私有化属性(用权限修饰符private修饰属性)②提供set/get方法用来给属性赋值和获取属性的值//让调用者通过方法给对象属性赋值//我们把给属性赋值的方法约定俗成的叫作:setXxx//自定义一个方法用来获取属性的值//对数组进行检查保数据类的安全。

2024-04-02 19:38:34 176

原创 day10 类的构造器 权限修饰符

类的成员-属性 :用来对对象进行说明(保存对象的状态)类的成员-方法 :用来实现具体的功能类的成员-构造器 :①创建对象 ②初始化作用:①创建对象 ②初始化格式:[修饰符] class 类名{[权限修饰符] 类名([形参列表]){初始化的代码;类名 :必须和类的名字保持一致。形参列表 :用来告诉调用者是否需要传数据。说明:1.在一个类中如果没有显示的定义构造器那么系统会默认提供一个空参的构造器。2.如果在类中已经显示定义了构造器那么系统将不会再提供空参构造器。

2024-04-02 19:02:06 413

原创 day09 java 静态方法vs非静态方法(实例方法) 实例方法如何用this 非静态方法内存分析

静态方法(static修饰)调用方法: 类名.方法名()静态方法在类加载的时候直接加载到方法区,被分配地址非静态方法(实例方法)调用方法: 对象名.方法名非静态方法只要被调用时才会被分配地址。

2024-04-02 18:36:17 470 1

原创 day09 java​成员变量 实例变量(属性)vs类变量 他们的内存实现机制

类变量(用static修饰的属性):所有对象共同拥有一份。格式: [修饰符] static 数据的类型 变量名 [=值]//属性//类变量//给类变量赋值Person.country = "中国";//创建对象//给属性赋值dongge.name = "东哥";//创建对象tengge.name = "腾哥";说明:1.类变量的默认值和属性的默认值一样2.类变量的调用: 类名.类变量名 对象名.类变量名(不建议使用-就算用了在编译的时候也会换成类名.类变量名)

2024-03-30 20:08:22 538

原创 day09 java类与对象

说明: 1.在同一个源文件中只能有一个类被public所修饰,public修饰的类的类名和源文件名称一致。2.在同一个包中类名不能相同。[修饰符] class 类名{通过类new出来的。对象:是一类事物的具体的实例。类:是一类事物的抽象的描述。

2024-03-30 19:28:51 271

原创 day09 java方法重载 方法递归

2.找类型匹配的(找和当前匹配的 没有就向上找) byte->int -> long -> float -> doulbe(也就是当前数据类型自动向表示范围更大的数据类型自动转换)假如栈中最多可以放60000个栈帧 而我们的限制条件在调用70000次方法后终止 仍然会报错。1.在使用方法的递归时一定要有限制条件用来终止自己-不能无限调用自己。2.在使用方法的递归时就算有限制条件也不能调用的太深(太多次)在同一个类中可以出现多个相同名字的方法但是要求形参列表必须不同。不同的形参列表指的是形参的。

2024-03-30 18:55:31 337

原创 day08 java可变参数

(2)如果一个方法包含可变参数,那么可变参数必须是形参列表的最后一个(非可变参数部分必须传入对应类型和个数的实参)定义一个方法时,形参的类型可以确定,但是形参的个数不确定,那么可以考虑使用可变参数。(4)如果可变参数数据类型是数组,在方法中可以当成二维数组使用。(3)在声明它的方法中,可变参数当成数组使用。(1)一个方法最多只能有一个可变参数。

2024-03-30 08:40:46 216

原创 day08 java方法的参数传递机制 形参VS实参 基本数据类型 vs 引用数据类型

注意!!!不是所有方法都用传参,接下来只讨论需要传参的方法。

2024-03-29 19:28:20 419 1

原创 day08 java 静态方法调用 方法的内存实现机制

静态方法: 静态方法要在方法上用修饰符static。静态方法可以通过类名调用 :类名.方法名()或者 直接调用 :方法名()在同一个类中时,直接使用调用在其他类中需要用 类名.方法名() 调用。

2024-03-29 18:42:05 420 1

原创 leecode02 java移除元素

给你一个数组nums和一个值val,你需要移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

2024-03-28 14:43:16 200 1

原创 leecode01 java 合并两个有序数组

方法2中需要用到临时数组sort来存放排序好的来自nums1和nums2的数组,不直接存nums1是因为从前往后存数组,害怕把原来的数组中的元素覆盖掉。

2024-03-28 10:51:46 673 1

原创 day07 java二维数组

(二维数组的元素是一维数组而一维数组是引用数据类型,所以二维数组的元素默认是null)要区分 二维数组的长度 和 二维数组中。二维数组的元素的默认是:null。

2024-03-27 19:18:50 473 1

原创 day07 java 冒泡排序、选择排序

【代码】day07 java 冒泡排序、选择排序。

2024-03-27 18:17:34 169 1

原创 day06 java 数组 && 数组内存

数组是引用数据类型。数组中的数据可以是基本数据类型也可以是引用数据类型(取决于是一个什么类型的数组)数组一旦初始化完成数组的长度不可变。//1.声明数组//格式: 数据类型[] 数组名;// 数据类型 数组名[];//数组中的元素是int类型 -- 建议使用此写法//数组中的元素是String类型。//2.静态初始化:用静态数据(编译时可以确定)对数组进行初始化。静态数据的个数就是数组的长度。//方式一:数组的声明和初始化可以分开写。//每个元素之间用逗号分隔开。该数组的长度为5。

2024-03-26 19:25:51 464 1

原创 day06 java 特殊转义字符 && 打标记的思想 && 循环嵌套时直接结束掉外部循环

n:换行\r:回车,回车后光标回到第一个字符\t:Tab键 \t一般代表四个空格,,,,前面的输出内容位数为8的倍数,\t将输出8个空格前面的输出内容位数不是8的倍数,\t将补足8位\\:\\":"\':'

2024-03-26 18:26:03 242 1

Snipaste截图工具方便好用,上手快

截图工具方便好用,上手快

2024-03-26

空空如也

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

TA关注的人

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