
java基础
hanyc..
这个作者很懒,什么都没留下…
展开
-
利用数组生成二叉树
生成二叉树原创 2022-07-14 17:16:05 · 1124 阅读 · 0 评论 -
接口和抽象类
接口和抽象类的异同点原创 2022-07-09 10:18:32 · 516 阅读 · 0 评论 -
HashMap数据结构
原创 2022-05-08 16:42:42 · 352 阅读 · 0 评论 -
lambda表达式
本例子中 ,从普通类->静态内部类->局部内部类->匿名内部类->lambda表达式,整体的代码繁杂程度由繁至简。函数式接口:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。对于函数式接口,我们可以通过lambda表达式来创建该接口的对象lambda表达式只有一行代码的情况下才可以简化成一行,如果有多行,那么就用代码块包裹前提是接口为函数式接口多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号(单个参数可以省略括号)package creatth原创 2022-04-22 22:16:03 · 178 阅读 · 0 评论 -
可变个数形参
原创 2021-04-10 19:21:14 · 70 阅读 · 0 评论 -
事实最终变量与最终变量
事实最终变量是指一旦被赋值以后就不会被改变的量,不意味着必须被final修饰才行。比如在某个方法中有int a = 23; 而这个变量a在这被初始化赋值后,它的值再也没有被改变过(虽然它本身可以被改变),那么这个a就可以称为事实最终变量。最终变量:使用关键字final声明变量称为最终变量。最终变量只能进行一次赋值(也就是说一旦初始化之后就不能再改变变量的值了)...原创 2022-03-19 17:29:54 · 547 阅读 · 1 评论 -
protected( 被 protected 修饰的成员对于本包和其子类可见)
原创 2022-03-05 20:04:28 · 759 阅读 · 0 评论 -
自定义异常类
①继承于现有的异常结构:RuntimeException Exception②提供全局常量 serialVersionUID 序列号(类的唯一标识)③提供重载的构造器eg:package exceptiontest;public class EcDef extends Exception { static final long serialVersionUID = -7034897190766939L; public EcDef() { } ; publ原创 2021-06-17 19:58:50 · 88 阅读 · 0 评论 -
异常的处理:抓抛模型
过程一:“抛”:程序在正常执行过程当中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象,并将此对象抛出。一旦抛出对象以后,其后的代码就不再执行了。关于异常对象的产生:①系统自动生成异常对象 ;②手动生成一个异常对象,并抛出(throw)过程二:“抓”:可以理解为异常的处理方式:(1)try-catch-finally(2)throwsthrow:异常对象产生的一种方式,手动产生一个异常对象;(位于方法体内)throws:处理异常的一种方式;(位于方法声明处)...原创 2021-06-16 21:17:43 · 220 阅读 · 0 评论 -
jdk8中的接口新特性
Java 8用默认方法与静态方法这两个新概念来扩展接口的声明。默认方法与抽象方法不同之处在于抽象方法必须要求实现,但是默认方法则没有这个要求,就是接口可以有实现方法,而且不需要实现类去实现这个方法。我们只需在接口中的方法名前面加个default关键字表明这个方法是默认方法。为什么要有这个特性?以前当需要修改接口的时候,需要修改全部实现该接口的类。而引进的默认方法的目的是为了解决接口的修改与现有的实现不兼容的问题。默认方法语法格式如下:public interface Vehicle {default原创 2021-05-30 12:24:44 · 509 阅读 · 0 评论 -
接口的匿名实现类对象
package oopinterface;public class USBTest { public static void main(String[] args) { Computer computer = new Computer(); // 1.接口的非匿名实现类的非匿名对象 Flash flash = new Flash(); computer.transformData(flash);//多态 Syste原创 2021-05-27 21:14:07 · 1326 阅读 · 0 评论 -
抽象类的匿名子类对象
这里的Person类是抽象类类,抽象类本身是不能被实例化的。package oopabstract;public class AbstractClassAnonymous { public static void main(String[] args) { Worker worker = new Worker(); method(worker);//非匿名类的非匿名对象 System.out.println("=================原创 2021-05-26 21:27:55 · 261 阅读 · 0 评论 -
final修饰属性
原创 2021-05-25 13:27:36 · 212 阅读 · 0 评论 -
静态代码块,非静态代码块,构造器的执行顺序
注:由父到子,静态先行。package ooplast;public class TheOrderOfStaticBlock { public static void main(String[] args) { new Me(); System.out.println("====================="); new Me();//static代码块只执行一次,随着类的加载而执行 }}class GrandFa {原创 2021-05-22 16:25:15 · 175 阅读 · 0 评论 -
toString特殊情况
package oop;public class TestToString { public static void main(String[] args) { String s = "abc"; s = null; System.out.println(s);//null System.out.println("===================="); System.out.println(s.toString原创 2021-05-20 19:43:08 · 99 阅读 · 0 评论 -
自己手动重写的equals方法与自动生成重写的equals方法的区别
自己手动重写的equals方法会有一些漏洞,比如Man类继承自Person类,当姓名和年龄相同时就认为这两个对象是相同的,当我们用一个Person对象和Man对象去比较,这两个对象肯定应该是不同的,但我们把这两个对象的姓名和年龄设置成一样的,那么自己手写equals方法比较得出来的是true,而实际应该是false。因为这里自动重写的方法中有判断语句getClass() != obj.getClass()。Person类:package overrideequalscompare;public cla原创 2021-05-20 19:32:01 · 534 阅读 · 0 评论 -
继承初理解
package jicheng.test1;public class InstanceTest { public static void main(String[] args) { InstanceTest it = new InstanceTest(); it.method(new Person()); System.out.println("================================="); it.meth原创 2021-04-29 21:53:22 · 90 阅读 · 0 评论 -
向下转型(通俗易懂)
向下转型与向上转型相对应的就是向下转型了。向下转型是把父类对象转为子类对象。(请注意!这里是有坑的。)案例驱动先看一个例子:Animal a = new Cat();Cat c = (Cat) a;c.eat();//输出 我吃鱼Dog d = (Dog) a;d.eat();// 报错 : java.lang.ClassCastExceptionAnimal a1 = new Animal();Cat c1 = (Cat) a1;c1.eat();// 报错 : java.l转载 2021-04-25 16:23:26 · 11876 阅读 · 8 评论 -
值传递机制内存解析
原创 2021-04-10 20:13:42 · 125 阅读 · 0 评论 -
重载简单解释
“两同一不同”:同一个类,相同的方法名;参数列表不同——参数个数不同,或者参数类型不同。原创 2021-04-09 23:12:04 · 81 阅读 · 0 评论 -
逻辑和按位与或
逻辑与或和按位与或的区别,按位与的符号和按位或的符号经过第一个条件就能判断整个条件的真假,还要对第二个条件进行判断,最后才2个结果结合起来判断是真还是假。逻辑与&& , 逻辑或 ||逻辑与&&表示的是交集,2个条件同时成立,结果才为真逻辑或 ||表示的并集,只要有一个条件成立,结果就为真按位与& , 按位或 |运算的结果和逻辑与或的是一样的逻辑与或和按位与或的区别:相似点:逻辑与的符号&&和按位与的符号&执行的结果是一样的逻辑或原创 2021-03-29 20:27:15 · 405 阅读 · 0 评论 -
当byte short char 做运算结果均为int型
byte、short、char ->int ->long ->float ->doublepackage base;//当byte short char 做运算结果均为int型 byte、short、char ->int ->long ->float ->doublepublic class TypeChange { public static void main(String[] args) { //小类型的变量赋值给大类型原创 2021-03-29 19:49:19 · 347 阅读 · 0 评论 -
自增操作不改变变量本身数据类型
package base;public class AriTest { public static void main(String[] args) { short s = 10; //s = s + 2; 编译失败,s后面+的1默认为int型 与s相加后结果为int型 而左边的s为short型 需要强转 s += 2;//自增1不会改变变量本身的数据类型 System.out.println(s); }}...原创 2021-03-29 19:47:41 · 245 阅读 · 0 评论