- 博客(65)
- 收藏
- 关注
原创 数据库报错集
characterEncoding=UTF-8 :明确指定了字符编码为 UTF-8。这确保在与数据库进行数据交互时,使用 UTF-8 编码来对字符进行编码和解码,以正确处理包含中文字符等非 ASCII 字符的数据,避免出现乱码问题。useUnicode=true :表示启用 Unicode 支持,这对于处理包含非 ASCII 字符(如中文)的数据非常重要。1.数据库英文显示正常,中文显示?
2024-07-15 14:49:34
114
1
原创 java快速排序
小于基准值-基准值-大于基准值。快速排序是时间复杂度最低的排序算法之一。冒泡,直接选择O(n^2);快速O(nlongn);每一次将元素分成三部分。
2024-02-23 16:57:15
126
原创 java递归
从前有座山,山里有个庙,庙里有个老和尚,老和尚正在给和尚讲故事,讲的是什么呢?将一个大问题分解成多个规模缩小了的相似问题;递归是一种在方法内部直接或间接调用自身的方法;//4.清理,不是必须;//3.向下递归调用。
2024-02-23 13:50:58
233
原创 java I/O流
可以创建文件,获取文件的整体信息(例如文件的位置,名称,类型,大小,特性),删除文件,改名等操作。但不能对文件的内容进行操作;获取当前目录下的所有文件;获取当前目录下的所有文件名;renameTo(File):改名。可以表示操作系统中的一个文件或目录;i/o流 input/output。
2024-02-22 15:58:01
314
原创 HashMap的内部结构
当向hashmap中增加一个key时,先计算出他的hash码,根据hash码及数组的长度来计算出元素的位置,如果此位置无数据则直接放在此位置,如果有数据再使用equals进行逐个比较,相同则替换,都不相同,则使用尾插法,插入到链表的尾部;关于自扩容,默认的加载因子是0.75,超过当前容量的75%,就是扩展2倍;关于查找,也是先计算出hash码,再模上长度, 去此位置中查找;内部类,Node是对key,value的封装,同时,他也是链表的一个结点;使用链表来解决,如果长度超过8,转换成树结构(面试);
2024-02-22 14:27:40
286
原创 java集合框架梳理
2.元素是否重复一般通过equals来判断(也可以用hashcode),可在类中重写equals方法;Stack(实现类):栈,先进后出,push,pop,peek;LinkedList(实现类):链表,java是双项链表,有前驱和后继;priorityQueue(实现类):优先队列;ArraryList(实现类):动态数组;Collection(顶接口):element。List(子接口):可重复,有序,有下标;Set(子接口):不重复,无序,无下标;集合框架:接口,实现类,算法类;
2024-02-21 09:09:00
203
原创 java集合框架
collection):也被称为容器;是一种可以容纳(包含,管理)其他对象的对象,被包含的对象称为元素(elements);2.Collection下有LIst(有下标),Set(无下标,不可重复),QUeue子接口,并且没有直接的实现类;3.Collection中定义类所有集合类中共同拥有的方法;Map:元素是成对弧线的(key-value);集合是一种容器,可以增删改查(CURD);集合框架包含了多个接口,实现类,算法类;:所有集合都继承了这两个接口中的一个;1.集合框架中两个顶层接口之一;
2024-02-02 10:41:55
223
原创 java.util包(java工具包)
Calemdar表示一个日历,此类可以用来处理时间,通常可以和Date结合着使用,就像String-->StringBuffer;可以获得年,月,日,小时,秒,星期几,一年中的第几天等;内部通过一个long值来表示当前时间的毫秒值;参考的时间是1970年1月1日0时0分0秒0毫秒;此包中包含了很多集合类,属性类,日期类等;但内部有一个方法,可以获得表示当前时间的实例;Random表示随机数生成器,它可以用来生成各种类型的随机数;表示一个时刻,可以精确到毫秒值,此类主要用来存储时间;Date(long);
2024-02-01 14:49:54
347
1
原创 java中String与StringBuffer转换
在Java中,当你使用"+"运算符来连接两个字符串时,会自动调用toString()方法将非字符串对象转换为字符串。这是因为Java中的字符串连接操作会自动调用对象的toString()方法来获取字符串表示形式,然后进行连接。例如,如果你有一个非字符串对象,比如一个整数,你可以直接将它与一个字符串相加,Java会自动调用整数对象的toString()方法来获取其字符串表示形式,然后将其与另一个字符串连接起来。被自动转换为字符串并与另一个字符串连接起来。
2024-02-01 13:38:54
198
原创 java异常
2.如果在try块中产生异常,则整个try块中的代码不再运行,并将产生的异常封装成一个对象,向外抛出;2.多个catch中的异常类型,应该先写子类,再写父类,因为父类包含子类,先写父类一定执行父类,不执行子类;//打印异常的追踪信息,即哪个类,哪个方法,哪行代码产生的什么类型异常;1.一个try块可以对应多个catch,catch是按顺序进行匹配的,如果匹配成功,将不会再继续匹配;如果都不能处理,则程序结束;finally的作用:只要进入try块,无论是否出现异常,都会执行finally中的代码;
2024-01-31 11:29:40
434
原创 java字符串缓冲区
/连在一起,就是链式编程。//不再重新创建,直接在原字符串后加了,因为字符串池中的字符串可改;//替换指定位置的字符串。有时需要对一个字符串反复执行,增删改的操作时,需要频繁的产生新的串,所以String的性能不好;//根据一个字符串来构建一个StringBuffer;//删除指定位置的字符串。reveser();
2024-01-30 14:35:14
160
原创 java回顾String类
String pool:需要用字面值定义,才能储存在字符串池中;String类:由final修饰,表示的是字符串,是常量;
2024-01-30 14:05:01
85
原创 java.String类
使用创建对象定义时(String s = new String(“无敌”):,先在字符串池中寻找有无相同值,若有不进行任何操作,若无先在字符串池中创建,然后再到堆中创建,倘若以后再用创建对象定义时,重复以上操作,但仍要在堆中重新创建,不能指向堆中曾经已有的相同值;时,直接在字符串池中创建,以后再用字面值定义时,如果字符串值相同,则不再创建新的,直接指向字符串池中已创建的;10.int compareTo(String anoString)://比较两个字符串的大小;//连接字符串,返回新串;
2024-01-30 10:51:50
328
原创 java.API前期类回顾
3.如果两个对象不相等,则hashcode可能相等,因为hashcode是int类型,只能存二十多亿个地址,有用尽时,注意hash码是十六进制的;2.如果两个对象相等,则hashcode一定相等;toString():重写后,转换成字符串;如果重写的话,转换成类名@hashcode;3.查询类的成员:属性,方法,构造方法;lang包的特点:不需要导入,自动导入;hashcode:返回一个hsah码;1.不改对象,多次调用返回结果相同;final,不能实例化,静态成员;传递性:x,y,z;
2024-01-30 08:53:21
117
原创 java.Object类
判断两个对象的内容是否相同,需要重写(直接alt+insert),如果不重写此方法,将继承Object的equals方法,此方法比较的是地址;当使用System.out.println()方法时,会自动调用对象的toSring()方法;一般需要重写(alt+insert),如果不重写,返回的是:类名@hascode的十六进制。一个对象,如果属性不变,那么多次调用hashcode方法,返回的结果应该相同;如果两个对象不相等(equals),那么两个对象的hashcode也可能相等;
2024-01-30 08:26:49
196
原创 java包装类
3.API(Application Programming Interface)文档:类的使用说明书;//将一个10进制的数转成某种紧致的字符串;jdk5以后,支持自动拆装包,即int b = 10;java是面向对象的语言,为了统一使用,需要将基本数据类型也包装成一个类;包装类是对基本数据类型的包装,有8个基本数据类型,因此就有8个包装类;注意:所有的类都有一个共同的父类Object,系统自动默认;出身(即了解的内容):父类,实现了哪些接口;当前类的方法:构造方法,普通方法;作用:掌握某个类的使用方法;
2024-01-29 11:25:13
137
原创 long包
System是系统的意思,提供了最常用的一些方法和属性,此类不能被实例化,也不能被继承;//获得当前时间的毫秒值;2.此包中包含了最常用的类和接口,为了使用方便,java会将其自动导入;//向控制台输出错误信息;//退出java虚拟机,即结束程序;destPos:目标数组的开始位置;1.是java种应用最广泛的包;srcPos:源数组的开始位置;
2024-01-29 09:31:44
157
原创 java常用类
3.应用程序接口(API(application programming interface)):将一个类的定义放在其他的类种,这种类就叫内部类;static修饰,可以访问外部类的所有静态部分;(API文档就是使用说明说)定义在方法种,在调用方法是被创建;没有名,定义和创建实例放在一起;继承,关联(聚合,组合),依赖。可以访问外部类的所有部分;属性,方法,构造方法;
2024-01-29 08:36:40
141
原创 java面向对象考试复习
继承:让子类拥有父类的属性和方法,简化不必要的代码量,可维护性高;多态:同一类事物可以拥有多种不同的形态,父类的引用可以指向子类的对象,不能访问子类中添加的方法和属性,可强制向下转换;封装就是指信息隐藏,把内部的数据和结构隐藏起来,提高安全性,让外部访问不需要注意细节,类和方法都是一种封装;关联:两类间有强依赖,关系稳定,就像朋友一样,一般来说是平等的;依赖:两个类之间偶然发生的关系,该关系具有临时性,就像人和过河船;类是抽象的,是创建对象的模板,对象是具体的,是类的一个实例;属性,方法,构造方法;
2024-01-26 14:57:38
108
原创 java自己封装一个动态数组类
/左移一位相当于乘2;//左移一位相当于乘2;//根据索引,删除一个值。//存储数据的数组;//根据索引,获得元数的值。//一开始你记得,后来你忘了,好了,报错了;//获得动态数组中元素的个数;//数组储存了实际数据的元素个数。//创建一个更大的数组。//创建一个更大的数组。
2024-01-26 11:00:52
36
原创 java在主方法中定义类的对象数组
/ 假设param1、param2、param3是你构造方法的参数。如果你想要初始化数组中的元素,可以使用循环或者数组初始化语句来为每个元素创建一个新的对象实例并赋值。数组中的元素会根据其数据类型自动进行初始化。// 调用对象的方法。// 定义一个具有三个参数构造方法的类的数组对象。// 使用数组中的对象执行某些操作。// 使用循环为数组中的元素赋值。
2024-01-25 13:09:19
412
原创 java类之间的关系
2.判断:has,是整体和局部的关系,但强调具有相同的生命周期,与聚合最大的不同是很难分离,像人的上半身和下半身;3.代码表现:一个类的某个方法使用的局部变量或形式参数是以另一个类为类型临时创建的对象;高内聚:类的内部,属性和方法之间的关系越强越好;低耦合:对于类和类之间的关系,倾向于类之间互相影响的程度越低越好;1.uml:子类父类用实线,空三角,类和接口用虚线,空三角;3.代码表现:一个类的某个属性是以另一个类为类型创建的;2.判断:has,强调整体和局部的关系;类和类之间,extends;
2024-01-25 10:53:16
346
原创 java设计模式,抽象,接口回顾以及小总结
/公共返回静态成员的方法;1.一个接口可以有多个实现类:implements;2.jdk8以后,可以有静态方法和默认方法;1.方法:只有方法的定义,没有方法的实现;经过分类编目,众人知晓的代码经验的总结;2.类:不能被实例化,就是不能创建对象;抽象类表示一个概念,接口表示一种能力;4.关于继承,抽象类和接口区别很大;2.接口和接口之间可以多继承;3.共分多少类,总计多少种?1.只有抽象方法,静态常量;3.接口与抽象类的区别。3.类和类之间单继承;属性,方法,构造方法;特定场景的设计问题;
2024-01-25 08:54:36
365
原创 java接口
3.java是单继承的,一个类只有一个父类,但一个类可以实现多个接口,接口和接口之间是可以继承的,一个接口可以继承多个接口;5.多个无关的类可以实现同一个接口(接口是一种能力,只要拥有这种能力就可以实现这个接口;3.接口中的所有方法都默认是由 public abstract修饰的,接口没有构造方法;3.java中只有单继承(即一个类只能有一个父类),但一个类可以实现多个接口;public class 接口名 extends 接口名,接口名{4.实现接口的类中必须提供接口中所有方法的具体实现内容;
2024-01-24 16:27:13
322
原创 java设计模式——主要讲单例模式
/第二步,在类内定义一个static类型的实例;public static Sun getInstance(){//第三步,定义一个公有静态方法来返回这个唯一实例;3.提供(定义)一个公有的静态方法来返回这个唯一实例,方法名一般定义为getInstance();if(s==null){//饿汉式有这个判断,懒汉式没有。private Sun(){//第一步,定义私有构造方法。当需求是一个类只允许创建一个唯一实例(对象),不能创造多个时;单例模式,工厂模式,原型模式,构建者模式;当第一次使用时,才会创建;
2024-01-24 11:43:34
304
原创 java面向对象,修饰符复盘
重写:方法名相同,参数相同,子类重写父类的方法时,访问修饰符可以相同也可以更大,返回值类型可以相同也可以更小;{}//匿名块,在调用构造方法前必会先执行一次匿名块,可用在每个方法都有的。不能,子类构造方法执行前必须先调用执行父类构造方法,通过super();属性:静态属性,为类定义属性,不属于任何对象,无法修改;对象:所有具体的事物都是对象,对象是类的一个具体实例;类:类是具有相同属性和行为的一组对象的抽象表示;继承:子类可以拥有父类的属性和方法;2.父类没有的,子类可以添加;3.父类有的,子类可以重写;
2024-01-24 09:11:32
281
原创 java特征修饰符
fianal 类名:表示最终类,不能被继承;final 方法名:表示最终方法,不能被重写;final 属性,形参,变量:表示最终的,不能被重新赋值,常量;1.属性2.方法3.构造方法:每个对象创建时自动执行一次,子类调用父类时是先执行父类的构造方法,再调用自身的构造方法,倘若子类构造方法无参则寻找父类无参构造方法,不满足则出错,同样有参找有参,类自身运行时也会先执行一次构造方法;4.匿名块5.静态块。
2024-01-23 15:46:10
362
原创 java封装,访问,特征修饰符回顾
静态属性:放在类中,所有的对象都可以访问,只存在一份,即使不创建对象,也能访问;把属性,方法定义成静态的,说明把该属性和方法放在了类中,不创建对象也能调用。defaut:不用声明,没有就是默认,系统默认,本包内;静态方法:不创建对象,就可以直接通过类名.方法名来调用;1.在静态方法中只能使用静态成员,而不使用非静态成员;2.在静态方法中不能使用this, super关键字;属性一般定义成私有的,方法一般定义成公共的;private:本类内;使用语法:类名.属性名;属性:不能被重新赋值;public:所有;
2024-01-23 14:15:50
323
原创 java封装
回顾:OPP三大特性(inhiretance):子类可以拥有父类的属性和方法,让类的定义更加简单,从而提高效率;class 子类 extends 父类{1.属性和方法能被继承,构造方法不能被继承;2.子类的构造方法中一定要先调用父类的构造方法,如果不显示调用,则编译器会生成一个super();子类新方法覆盖父类原方法,要求方法名相同,参数也相同,方法体可自定义;1.父类有的,子类一定有;2.父类没有的,子类可以添加;3.父类有的,子类可以改;两种用法:1.super.属性,super.方法。
2024-01-23 09:23:19
383
原创 java继承
如果需要创建人,学生,教师,农民,士兵等多个类时,会做很多重复的工作;例:需要创建多个僵尸类,包括僵尸:普通僵尸,爆炸僵尸,帽子僵尸,跳高僵尸;:定义新类时,工作量增大,修改维护时也需要大量的工作;如何解决以上的问题?
2024-01-22 10:44:43
730
原创 java属性访问器
当我们定义属性时,为了提高访问属性的安全性,一般需要使用属性访问器来访问;快捷键alt + insert配合shfit和ctrl多选;一个被称为setter:作用是给属性赋值;一个被称为getter:作用是获取;思想:通过方法来访问属性;
2024-01-19 14:29:21
376
原创 java包管理
为了更有条理的管理类,java提供了package,package类似于操作系统中的文件夹,类可以直接放在包中进行管理;表示导入com.huayu.game中的Person类;此刻语句表示当前类放在com.huayu.game包中;import :表示当前类中导入了哪个包中的类:import 应该放在package下面,可以有多个;表示导入com.huayu.game包中的所有类;
2024-01-19 14:29:16
369
原创 java匿名块
6.匿名块的应用场景;当调用该类中任何方法时都需要执行一些固定的语句,就可以将这些固定的语句封装在匿名块中;5.匿名块的作用:无论调用哪个构造方法之前都先调用匿名块;4.匿名块 {},就是没有名称的代码块;
2024-01-19 14:07:12
351
原创 java构造方法回顾
1.作用:实例化对象时,给属性赋初值;(实际上可以在构造方法中写任何代码);2.语法:名与类相同,无返回值;3.什么时候调用:new的时候;
2024-01-19 13:44:33
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人