Java基础
文章平均质量分 69
pumpkin9841
这个作者很懒,什么都没留下…
展开
-
MySQL问题记录
1. mysql里面为什么用B+树?mysql访问数据要通过页,一个页就是B+树上的一个节点,访问一个节点就相当于一次I/O,所以访问节点越少,I/O次数越少,性能也就越好。而B+树的特点就是够爱够胖,一般情况下,B+树都不会超过4层,所以如果我们通过主键去查找某条记录最多只需要4个节点,所以,使用B+树可以有效的减少访问节点,提升性能。2. 那能不能用哈希呢?不能使用k-v键值对存储数据,把索引值做hash运算,并存放到hash表中,可能会存在hash冲突,拉链法(解决冲突的方法之一)。有点:k.原创 2022-03-05 21:28:26 · 628 阅读 · 1 评论 -
【Java基础】笔记
Java基础笔记索引原创 2021-12-21 13:12:36 · 385 阅读 · 0 评论 -
【Java基础】 24 正则表达式
正则表达式介绍一个正则表达式,就是用某种模式去匹配字符串的一个公式。正则表达式不是Java才有的,实际上很多编程语言都支持正则表达式进行字符串操作!示例public class 正则表达式1 { public static void main(String[] args) { String content = "Java是1998Java是1998Java是1998Java是1998Java是1998Java是1998Java是1998Java是1998Java是199原创 2021-11-30 00:41:56 · 439 阅读 · 0 评论 -
【Java基础】 23 反射
反射通过外部文件配置,在不修改源码情况下,来控制程序,这样的需求在学习框架时特别多,也符合设计模式的ocp原则(开闭原则)反射快速入门根据配置文件re.properties指定信息,创建Cat对象并调用方法eatre.properties文件classfullpath=test.CatmethodName=eat代码public class z1_反射入门 { public static void main(String[] args) throws IOException,原创 2021-11-30 00:43:20 · 151 阅读 · 0 评论 -
【Java基础】22 网络编程
网络相关概念TCP和UDPTCP协议:传输控制协议使用TCP协议前,须先建立TCP连接,形成传输数据通道传输前,采用“三次握手”方式,是可靠的TCP协议进行通信的两个应用进程:客户端、服务端在连接中可进行大数据量的传输传输完毕,需释放已建立的连接,效率低UDP协议将数据、源、目的封装成数据包,不需要建立连接每个数据报的大小限制在64K内因无需连接,故是不可靠的发送数据结束时无序释放资源(因为不是面向连接的),速度快InetAddress类getLocalHost获取本机原创 2021-11-29 01:01:49 · 489 阅读 · 0 评论 -
【Java基础】 21 文件
文件文件流文件在程序中是以流的形式来操作的流数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径常用的文件操作创建文件对象相关构造器和方法new File(String path)根据路径构建一个File对象new File(File parent , String child)根据父目录文件+子路径构建new File(String parent , String child)根据父目原创 2021-11-29 01:01:38 · 250 阅读 · 0 评论 -
【Java基础】 20进程与线程
进程概念进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间。进程是程序的一次执行过程,或是正在运行的一个程序。是动态过程: 有它自身的产生、存在和消亡的过程。public class z1_CpuNums { public static void main(String[] args) { Runtime runtime = Runtime.getRuntime()原创 2021-11-29 01:01:27 · 181 阅读 · 0 评论 -
【Java基础】 19 泛型
泛型不使用泛型的问题分析不能对加入到集合ArrayList中的数据类型进行约束(不安全)便利的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响例如,这种写法中的arrayList就只能添加Dog类型的数据 ArrayList<Dog> arrayList = new ArrayList<Dog>() ;泛型的好处编译时,检查添加元素的类型,提高了安全性减少了类型转换的次数,提高效率对泛型的理解泛型又称为参数化类型,是JDK50出现的新特性,原创 2021-11-29 01:01:07 · 219 阅读 · 0 评论 -
【Java基础】 18 集合
集合Java的集合类很多,主要分为两大类集合主要是两组(单列集合,双列集合)Collection接口有两个重要的子接口List和Set,他们的实现子类都是单列集合Map接口的实现子类是双列集合,存放K-V集合整体结构Collection接口和常用方法Collection接口实现类的特点Collection实现子类可以存放多个元素,每个元素可以是Object有些Collection的实现类,可以存放重复的元素,有些不可以Collection的实现类,有些是有序的(List),原创 2021-11-29 01:00:54 · 154 阅读 · 0 评论 -
【Java基础】 17 常用类
包装类针对8种基本数据类型相应的引用类型——包装类有了类的特点,就可以调用类中的方法基本数据类型包装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble各包装类的继承关系包装类和基本数据的转换演示 包装类 和基本数据类型的相互转换,这里以int和Integer演示。JDK5前的手动装原创 2021-11-29 01:00:42 · 183 阅读 · 0 评论 -
【Java基础】 16 异常
异常介绍Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两类Error(错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重问题。比如:StackOverflowError[栈溢出]和OOM(out of memory),Error是严重错误,程序会崩溃。Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问,试图读取不存原创 2021-11-29 01:00:32 · 157 阅读 · 0 评论 -
【Java基础】15 注解
注解介绍注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。基本的Annotation介绍使用Annotation时要在其前面增加@符号,原创 2021-11-29 00:59:38 · 95 阅读 · 0 评论 -
【Java基础】14 枚举
枚举枚举对应英文(enumeration,简写enum)枚举是一组常量的集合可以这样理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象枚举的两种实现方式自定义类实现枚举使用enum关键字实现枚举自定义类实现枚举不需要提供setXxx方法,因为枚举对象值通常为只读对枚举对象/属性使用final + static共同修饰,实现底层优化枚举对象名通常使用全部大写,常量的命名规范枚举对象根据需要,也可以有多个属性私有化构造器,防止外部直接newpublic class原创 2021-11-29 00:59:23 · 123 阅读 · 0 评论 -
【Java基础】 13 内部类
内部类介绍一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。内部类是我们类的第五大成员(属性、方法、构造器、代码块、内部类),内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。基本语法 class Outer{ //外部类 class Inner{ //内部类 } } class Other{ //外部其他类 }内部类的分类定义原创 2021-11-29 00:59:11 · 183 阅读 · 0 评论 -
【Java基础】12 接口
接口介绍接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法实现。语法public interface MyInterface { //属性 int age = 10 ; //方法(1.抽象方法,2.默认实现方法,3.静态方法)}public class MyInterfaceImpl implements MyInterface { //自己的属性 //自己的方法 //必须实现的接口的抽象方法 pu原创 2021-11-28 16:40:08 · 102 阅读 · 0 评论 -
【Java基础】11 抽象类
抽象类当父类的某些方法,需要声明,但是又不确定具体实现时,可以将其声明为抽象方法,那么这个类就是抽象类。用法当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,这个方法就是抽象方法。用abstract来修饰该类就是抽象类。例如把Animal做成抽象类,并让子类Cat类实现public class Test { public static void main(String[] args) { Cat cat = new Cat(); Sy原创 2021-11-28 16:38:36 · 119 阅读 · 0 评论 -
【Java基础】10 final关键字
基本介绍final可以修饰类、属性、方法和局部变量在某些情况下,程序员可能有以下需求,就会使用到final当不希望类被继承时 , 可以用final修饰当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰当不希望类的某个属性的值被修改,可以用final修饰 public final double TAX_RATE = 0.08 当不希望某个局部变量被修改,可以使用final修饰 final double TAX_RATE =原创 2021-11-28 16:37:34 · 73 阅读 · 0 评论 -
【Java基础】9 单例设计模式
什么是单例模式单例:单个实例所谓的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式有两种方式饿汉式懒汉式单例模式应用实例饿汉式和懒汉式实现步骤构造器私有化 -> 防止直接new新对象类的内部创建对象向外暴露一个静态的公共方法返回该对象实例 -> getInstance饿汉式代码实现饿汉式解释:还没用到该单例对象时,就已经创建好了,饿汉式可能造成创建了对象,原创 2021-11-28 16:36:20 · 79 阅读 · 0 评论 -
【Java基础】8 代码块
代码块代码块概述代码块又称为初始化块 , 属于类中的成员(即代码块也是类的一部分),类似于方法,将逻辑语句封装在方法中,通过{}包围起来。但和方法不同的是,代码块没有方法名,没有返回值,没有参数,只有方法体,而且不能通过对象或类显示调用,而是加载类时或创建对象时隐式调用。基本语法 [修饰符]{ 代码 } ;注意:修饰符可写也可以不写,要写的话只能写static。代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,叫普通代码块。逻辑语原创 2021-11-28 16:35:19 · 264 阅读 · 0 评论 -
【Java基础】7 详解main方法
深入理解main方法 public static void main(String[] args) { }main方法是Java虚拟机调用的。Java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public。Java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static。该方法接收String类型的数组参数,该数组中保存执行Java命令时传递给所运行的类的参数。特别注意在main()方法中,可以直接调原创 2021-11-28 16:33:28 · 153 阅读 · 0 评论 -
【Java基础】6 类变量和类方法
类变量什么是类变量类变量 也叫 静态变量/静态属性 , 是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。如何定义类变量访问修饰符 static 数据类型 变量名 ; [推荐]static 访问修饰符 数据类型 变量名 ;如何访问类变量类名.类变量名 [推荐]对象名.类变量名 [静态变量的访问修饰符的访问权限和范围和普通属性是一样的]注意static变量是同一个类的所有对象共享的。static原创 2021-11-28 16:32:04 · 170 阅读 · 0 评论 -
【Java基础】5 Object类
Object类equals方法==和equals的对比==:既可以判断基本类型,又可以判断引用类型==:如果判断基本类型,判断的是值是否相等==:如果判断的是引用类型,判断的是地址是否相等,即判定是不是同一个对象。equals:是Object类中的方法,只能判断引用类型equals:默认判断的是地址是否相等,子类往往重写该方法,用于判断内容是否相等。比如String类。重写Person类的equals方法,判断两个Person类对象是否相等public class Person {原创 2021-11-28 16:30:18 · 100 阅读 · 0 评论 -
【Java基础】4多态
多态多态基本介绍方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础之上的。例如A a = new A() ;//通过不同的参数个数去调用sum方法,就回去调用不同的方法//因此对sum方法来说,就是多态的实现System.out.println( a.sum(10,30) ) ;System.out.println( a.sum(10,30,50) ) ; 多态细节多态的前提是:两个对象(类)存在继承关系多态的向上转型本质:父类的引用指向子类的对象原创 2021-11-28 16:28:47 · 290 阅读 · 0 评论 -
【Java基础】3 this、super关键字和方法重写
thisJava虚拟机会给每个对象分配一个this,代表当前对象。简单地说,哪个对象调用,this就代表哪个对象。this使用细节this关键字可以用来访问本类的属性、方法、构造器。this用于区分当前类的属性和局部变量访问成员方法的语法this.方法名(参数列表)构造器访问另一构造器语法: //注意只能在构造器中使用,且必须放在第一句 this(参数列表)this不能在类定义的外部使用,只能在类定义的方法中使用super基本使用super代表父类原创 2021-11-28 16:26:21 · 146 阅读 · 0 评论 -
【Java基础】2 可变参数与对象创建流程
可变参数基本概念Java允许将同一个类中多个同名同功能,参数同类型但个数不同的方法,封装成一个方法。可以通过可变参数实现。基本语法访问修饰符 返回类型 方法名(数据类型... 形参名){}例如求多个数的和public class 可变参数 { public static void main(String[] args) { varParameter(1,2,4,5) ; //输出12 } //int... 为多值参数 pub原创 2021-11-27 10:29:54 · 369 阅读 · 0 评论 -
【Java基础】1 Java重要特性
Java重要特点1. Java语言时面向对象的(OOP)2. Java语言时健壮的。Java的强类型机制、异常处理、垃圾的自动收集等时Java程序健壮性的重要保证。3. Java语言是跨平台性的。(即一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台)4. Java语言是解释型的解释型语言:javascript,PHP,Java编译型语言:C/C++区别是:解释型语言,编译后的代码,不能直接被机器运行,而需要解释器来执行;编译型语言编译后的代码,可以直接被机器执行Ja原创 2021-11-27 10:28:38 · 85 阅读 · 0 评论