JAVA基础
文章平均质量分 61
include_jklove
这个作者很懒,什么都没留下…
展开
-
Eclipse中的快捷键
Eclipse中的快捷键原创 2022-12-06 16:45:04 · 55 阅读 · 0 评论 -
Object和final
JDK三大特殊类:Object,String,包装类Object类是Java所有类默认的父类,万物之母,不需要使用extend关键字明确写出继承Object只要使用class关键字声明的类,默认都有一个父类,就是Object1 由于Object的类是所有类的父类,因此Object是参数的最高统一化!!!!!所有类的对象,都可以通过Object引用进行接收2 由于Object类是所有类的父类,则Object类中的所有方法,子类中都有,而且我们可以选择性的覆写其中的方法。原创 2022-11-26 21:47:16 · 111 阅读 · 0 评论 -
面试---必刷题
吊打面试原创 2022-11-24 22:37:46 · 97 阅读 · 0 评论 -
异常的概念与体系结构
Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构例如, 我们实现一个用户登陆功能.if(!} if(!} System . out . println("登陆成功");} }此时我们在处理用户名密码错误的时候可能就需要抛出两种异常. 我们可以基于已有的异常类进行扩展(继承), 创建和我们业务相关的异常类.自定义异常类,然后继承自Exception 或者 RunTimeException。原创 2022-11-22 17:52:14 · 96 阅读 · 0 评论 -
字符串常量池
intern 是一个native方法(Native方法指:底层使用C++实现的,看不到其实现的源代码),该方法的作用是手动将创建的String对象添加到常量池中。在Java程序中,类似于:1, 2, 3,3.14,“hello”等字面类型的常量经常频繁使用,为了使程序的运行速度更快、创建对象时,现在字符串常量池中找,找到了,直接将该字符引用赋给s1。上述程序创建方式类似,为什么s1和s2引用的是同一个对象,而s3和s4不是呢?更节省内存,Java为8种基本数据类型和String类都提供了常量池。原创 2022-11-22 16:08:39 · 54 阅读 · 0 评论 -
String详解
StringBuilder和String是两个独立的类,字符串常量池保存的都是String对象 int和double的关系StringBuilder对象内部都可以修改的。统一使用String.valueOf(任意类型),当传入的是自定义的类时,会默认调用toString进行转换,要求我们在自定义的类型中覆写toString方法~若在某些场景下需要频繁修改字符的内容,JDk提供了两个新的类,专门用来处理字符串内容修改的。b.若前k个字符完全相等(k是两个字符串中的最小值),返回值为两个字符串的长度差!原创 2022-11-22 16:08:22 · 221 阅读 · 0 评论 -
接口的定义和使用
因为接口中只有全局变量和抽象方法,因此,在接口中一下关键字可以省略不写,阿里编码规约明确表示,接口中只保留核心关键字,可以省略的坚决不写!子类使用implements实现接口,子类若是普通类,必须覆写接口中所有的抽象方法(一般磊说,子类使用Imp结尾,表示是接口的实现子类,若子类一眼看去就知道是某个接口的子类,可以不加Impl结尾l)浅拷贝:被克隆的对象内部若包含其它类型的引用,则克隆后的对象,仍然保留原引用,不会产生新对象(浅拷贝只会将原对象内部的所有值复制一份引用就只会复制引用的值,即。原创 2022-11-21 09:23:58 · 295 阅读 · 0 评论 -
Object详解
关于Object除了Object是默认所有类的父类外,JDk赋予了Object可以接收所有引用数据类型的权利Object还可以接收数组和接口对象!由于的存在,大家一定要记住千万别被前面的给迷惑了,我们的是在哪!!!!Object类的默认equals方法对于引用数据类型来说”==“是比较引用类型保存的地址值是否相等,若要进行对象内部属性值比较是否相等使用equals方法!!(Object类提供的方法)原创 2022-11-20 08:00:00 · 270 阅读 · 0 评论 -
面试必看(常考面试题)
①"==“进行的是两个变量数值的比较,对于基本类型来说,比较的就是具体的数值是否相等;2.” equals"方法进行的是两个类对象的属性值比较,若类的对象要具体比较属性值是否相等,一要猾写Obiect类提供的eauals方法。会开辟两块堆内存空间,字符串"hello"保存在字符串常量池中,然后用常量池中的String对象给新开辟的String对象赋值。StringBulider采用异步处理,线程不安全,效率较高,一般不要求线程安全的场景下,推荐使用StringBulider。如果有先答共性再分别回答区别!原创 2022-11-18 10:50:19 · 52 阅读 · 0 评论 -
面向对象---继承
任意的一个动物,现在要程序扩展一个鸭子Duck,青蛙Frog等等这些类和Dog’与Cat有很多相似之处=》不同的动物类,具有很多属性和行为,这些属性或方法分散在具体的类中,就会有很多反码的冗余,拓展一个类也比较麻烦相似的的代码否要重写一遍。当访问的变量的时候优先从子类寻找,若子类不存在才会从父类循环找同名属性,如父类中也没找到同名属性,编译就会报错。3.2 若子类不存在该方法,则会从父类中寻找是否存在该方法,存在则调用,不存在则报错,一定注意隐式继承的问题。继承:代码的复用,增加整个程序的扩展性。原创 2022-11-16 21:25:01 · 82 阅读 · 0 评论 -
面向对象---多态
私有方法,静态方法,构造方法都不存在方法重写!!静态绑定-方法重载:编译时,编译器根据用户传参的不同决定到底调用的那个方法动态绑定-方法的重写:编译时无法确定到底调用的是那个对象的方法,只有在运行时,根据传入的方法的对象,才能知道到底调用的是那个对象的方法,这就叫动态绑定,即运行时才明确调用的哪个方法。原创 2022-11-16 14:00:00 · 85 阅读 · 0 评论 -
面向对象---封装
对外屏蔽类内部一些实现细节,类的外部只能通过列提供的方法来操作类封装:将数据和操作数据的方法相结合,隐藏对象的属性和细节,对外部提供公开的方法进行交互简单来说就是文件夹。原创 2022-11-14 23:23:02 · 62 阅读 · 0 评论 -
Static关键字
Java中,被static修饰的成员方法称为静态成员方法,是类的方法,不是某个对象所特有的。Static关键字static修饰的成员变量,称为静态成员变量,静态成员变量最大的特性:不属于某个具体的对象,是所有对象所共享的。注意:静态成员变量一般不会放在构造方法中来初始化,构造方法中初始化的是与对象相关的实例属性。使用static定义的代码块称为静态代码块。静态成员变量的初始化分为两种:就地初始化 和 静态代码块初始化。static 表示静态与类相关,和具体的对象无关!看见static关键字 与对象无关!原创 2022-11-12 19:57:57 · 43 阅读 · 0 评论 -
this关键字
必须等待其他构造方法调用结束后在执行其他属性的构造,有先后关系,你依赖别的构造方法先执行结束在调用当前的初始化逻辑。编译器的就近原则,程序调用一个变量或方法时编译器查找属性或方法有优先级,在哪找到直接调用。使用this.属性方法—>直接从类中寻找同名变量!在当前构造方法中调用其他构造方法必须卸载构造方法的首行。语法:this.(参数);//表示调用构造方法。只有构造方法中才能调用构造方法。this的构造方法不能成环。this调用构造方法。原创 2022-11-11 13:48:20 · 57 阅读 · 0 评论 -
类的默认初始化
为什么,而成员变量可以不用呢?原创 2022-11-10 16:21:14 · 135 阅读 · 0 评论 -
类定义和使用
/ 创建类//属性 成员属性,对象属性//方法 成员方法,对象方法}//定义一个学生类 public String name;//姓名 public String gender;//性别 public short age;//年龄 public double score;//学分 public void DoClass() {} //上课 public void DoHomework() {} //做作业 public void Exam() {} //考试 }原创 2022-11-09 10:44:19 · 442 阅读 · 0 评论 -
数组的使用详解
所谓的 “引用” 本质上只是存了一个地址. Java 将数组设定成引用类型, 这样的话后续进行数组参数传参, 其实只是将数组的地址传入到函数形参中. 这样可以避免对整个数组的拷贝(数组可能比较长, 那么拷贝开销就会很大).、原创 2022-11-08 17:07:47 · 101 阅读 · 0 评论 -
数组的定义和使用
数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递增,该编号称为数组的下标,数组可以通过。所谓 “遍历” 是指将数组中的所有元素都访问一遍, 访问是指对数组中的元素进行某种操作,比如:打印。静态初始化虽然没有指定数组的长度,编译器在编译时会根据{}中元素个数来确定数组的长度。在数组中可以通过 数组对象**.length** 来获取数组的长度。二维数组的用法和一维数组并没有明显差别!1动态初始化:在创建数组时,直接指定数组中元素的个数。如果没有对数组进行初始化,数组中元素有其默认值。原创 2022-11-08 15:57:15 · 57 阅读 · 0 评论 -
方法的递归
1.方法递归包括了一种隐式的循环,他会重复执行某段代码块,但这种重复执行无须循环控制。2.递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。什么是才能使用递归(什么场景下才使用递归这中程序结构来解决问题)3,存在递归结束条件(拆分问题是有限的,不能无限拆分下去如上所说。2,拆分后的子问题和原问题除了数据大小不同,解题思路完全相同。在计算机里递归它是走到程序的末尾才会停止“递归是学习数据结构的和算法的重中之重。求一个数的n阶乘时递归的最直接的体现。1,一个大问题可以拆成若干个小问题。原创 2022-11-08 15:34:01 · 82 阅读 · 0 评论 -
方法定义和重载
修饰符 返回值类型 方法名称(形参类型 形参名称…){//方法体代码(return 返回值)}public static 返回值类型 方法名称(形参类型 形参名称){返回值类型:返回值类型是啥,有没有返回值,要根据实际情况来决定//方法体[return 返回值 ];//void没有返回值,可以不写return语句返回值:返回值是返回给调用者来使用}修饰符统一先使用共同搭配。2.返回值和参数具体情况为准,如方法没有返回值,则返回值类型写成void例如。原创 2022-11-08 15:04:42 · 191 阅读 · 0 评论 -
JAVA基础语句
【代码】JAVA基础语句。原创 2022-10-20 11:29:15 · 65 阅读 · 0 评论 -
驼峰命名法
/推荐使用这种,一眼看上去就知道这个变量在存储一个年龄!若由多个单词组成,则从第二个单词开始首字母大写int age = 10;int a = 10;//此时用这个命名,表示范围很广,不具体。大驼峰:类名使用大驼峰命名法每个单词的首字母都大写。以后标识符的命名一律使用有意义的单词来命名。小驼峰:方法和变量使用小驼峰命名法。标识符若由一个单词组成则全小写。驼峰命名法:规范命名的规则。原创 2022-10-20 11:18:34 · 165 阅读 · 0 评论 -
数据类型转换
计算机存储数据默认采用4字节存储,所有小于四字节的数据类型(byte,short,char),隐式提升为int之后进行存储(boolean)当把整形字面量赋值给byte变量时,若在byte保存范围之内直接赋值,但是若是超出byte的保存范围,必须进行强转,有精度丢失问题。当不同数值进行运算的时候,小类型会自动转化为大类型进行运算。显示转换:强制进行转换,一般是大变小会出现精度丢失。注意:布尔类型的无法和任何类型进行转换。注意:布尔类型的无法和任何类型进行转换。注意:布尔类型的无法和任何类型进行转换。原创 2022-10-20 11:09:55 · 50 阅读 · 0 评论 -
JAVA字面量
数值型:bety,shot,int,long。浮点数-字面量默认为:double 类型。布尔型-字面量默认为:boolean类型。字符串-字面量默认为:String类型。字符型-字面量默认为:char类型。浮点型:float,double。整形-字面量默认为:int 类型。布尔型:boolean。首先了解八大基本类型。原创 2022-10-20 10:47:04 · 167 阅读 · 1 评论