java
伊颦伊笑
人的悲欢并不相通
展开
-
Java基础——枚举
枚举枚举介绍枚举对应英文( enumeration,简写 enum )枚举是一组常量的集合。可以这样理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。枚举的两种实现自定义类实现枚举使用 enum 关键字实现枚举自定义枚举实现不需要提供 setXxx 方法,因为枚举对象值通常为只读对枚举 对象 / 属性 使用 final + static 共同修饰,实现底层优化枚举对象名通常使用全部大写,常量的命名规范枚举对象根据需要,也可以有多个属性自定义枚举步骤构造器私有化原创 2021-09-02 10:00:52 · 127 阅读 · 0 评论 -
Java基础——内部类
内部类基本介绍一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类 (inner class),嵌套其他类的类称为外部类(outer class)。是我们类的第五大成员思考:类的五大成员是哪些?【属性、方法、构造器、代码块、内部类】,内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系,注意:内部类是学习的难点,同时也是重点,后面看底层源码时,有大量的内部类.package day04.innerClass;public class InnerClass { //原创 2021-09-01 19:10:03 · 146 阅读 · 0 评论 -
Java基础——模板设计模式(抽象类最佳实现)
模板设计模式需求有多个类,完成不同的任务job要求统计得到各自完成任务的时间请编程实现练习设计抽象类(Template),能完成如下功能:编写方法 calTime(),可以计算某段代码的耗时时间编写抽象方法 job()编写子类 Sub1,Sub2 ,继承抽象类 Template ,并实现 job() 方法。编写测试类 TestTemplate ,看看是否好用。具体实现package day04.abstract_;public class TestTemplate {原创 2021-09-01 09:49:22 · 135 阅读 · 0 评论 -
Java基础——抽象类
抽象类当父类的一些方法不能确定时,可以用 abstract关键字来修饰该方法,这个方法就是抽象方法,用 abstract来修饰该类就是抽象类。父类方法不确定性的问题考虑将该方法设计为抽象(abstract)方法所谓抽象方法就是没有实现的方法所谓没有实现就是指,没有方法体当一个类中存在抽象方法时,需要将该类声明为abstract类一般来说,抽象类会被继承,由其子类来实现抽象方法.用 abstract 关键字来修饰一个类时,这个类就叫抽象类访问修饰符 abstract 类名{}用 abst原创 2021-09-01 09:17:20 · 220 阅读 · 0 评论 -
Java基础—— final 关键字
final 关键字应用场景当不希望类被继承时,可以用final修饰。当不希望父类的某个方法被子类覆盖 / 重写(override)时,可以用final关键字修饰。当不希望类的的某个属性的值被修改,可以用final修饰。当不希望某个局部变量被修改,可以使用final修饰final 的使用细节final修饰的属性又叫常量,一般用XX_XX_XX命名final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一【选择一个位置赋初值即可】:定义时 — public原创 2021-08-31 20:31:51 · 800 阅读 · 0 评论 -
Java基础——单例模式
单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式有两种方式:1)饿汉式 ;2)懒汉式单例模式应用实例演示饿汉式和懒汉式单例模式的实现。步骤如下:构造器私有化:防止直接 new类的内部创建对象向外暴露一个静态的公共方法:getlnstance代码实现// 饿汉式package day03;public class Demo2 { public static void mai原创 2021-08-31 19:56:19 · 96 阅读 · 0 评论 -
Java基础——代码块
代码块基本介绍代码化块又称为初始化块,属于类中的成员【即是类的一部分】,类似于方法,将逻辑语句封装在方法体中,通过{}包围起来。但和方法不同,没有方法名,没有返回值,没有参数,只有方法体,而且不用通过对象或类显式调用,而是加载类时,或创建对象时隐式调用。代码块调用的顺序优先于构造器。基本语法修饰符 { 方法体}修饰符可选,要写的话,也只能写static代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,叫普通代码块 / 非静态代码块逻辑语句可以为任原创 2021-08-31 19:14:35 · 67 阅读 · 0 评论 -
Java基础——main() 方法
main() 方法深入理解main方法:解释main方法的形式:public static void main(String[] args){}main方法是虚拟机调用java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是publicjava虚拟机在执行main()方法时不必创建对象,所以该方法必须是static该方法接收String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数,java 执行的程序 参数1 参数2 参数3。【案例】在命令行下传递参数原创 2021-08-31 16:59:59 · 180 阅读 · 0 评论 -
Java基础——类变量(静态变量)和类方法
类变量(静态变量)static变量是同一个类所有对象共享的。static变量在类加载的时候就产生了。package day03;public class Demo2 { public static void main(String[] args) { //类名.类变量名 //说明:类变量是随着类的加载而创建,所以即使没有创建对象实例也可以访问 System.out.println(Demo.name);原创 2021-08-31 16:36:13 · 327 阅读 · 0 评论 -
Java基础——重写
重写重写子类的方法的参数,方法名称,要和父类方法的参数,方法名称完全一样。子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类。比如父类返回类型是Object,子类方法返回类型是Stringpublic Object getInfo(){}public String getInfo(){}子类方法不能缩小父类方法的访问权限:public > protected > 默认 > private重写和重载的比较...原创 2021-08-31 15:15:45 · 48 阅读 · 0 评论 -
Java基础——断点调试
断点调试提示在断点调试过程中,是运行状态,是以对象的运行类型来执行的跳入方法通常用来看源码deBug 支持在调试过程中动态下断点原创 2021-08-31 14:50:45 · 69 阅读 · 0 评论 -
Java基础——hashCode、toString、finalize
Object 类中的 hashCode()提高具有哈希结构的容器的效率!两个引用,如果指向的是同一个对象,则哈希值肯定是一样的!两个引用如果指向的是不同对象,则哈希值是不一样的哈希值主要根据地址号来的,不能完全将哈希值等价于地址。案例演示:package day03;public class Demo2 { public static void main(String[] args) { C c = new C(); C c1 = new C()原创 2021-08-31 10:08:06 · 117 阅读 · 0 评论 -
Java基础——多态参数
多态参数package day03;public class Demo1 { public static void main(String[] args) { Worker worker = new Worker("Tom", 5000); Manager manager = new Manager("Tom2", 10000, 50000); Demo1 demo1 = new Demo1(); demo1.showEmpAn原创 2021-08-30 20:27:59 · 224 阅读 · 0 评论 -
Java基础——多态数组
多态数组数组的定义类型为父类类型,里面保存的实际元素类型为子类类型应用实例:现有一个继承结构如下:要求创建1个Person对象、2个Student对象和2个Teacher对象。package day03;public class Demo1 { public static void main(String[] args) { Person[] persons = new Person[5]; persons[0] = new Person("Tom1"原创 2021-08-30 20:00:43 · 798 阅读 · 0 评论 -
Java基础——动态绑定机制
动态绑定机制Java的动态绑定机制:当调用对象方法的时候,该方法会和该对象的内存地址 / 运行类型绑定当调用对象属性时,没有动态绑定机制, 哪里声明,哪里使用package day02;public class Demo5 { public static void main(String[] args) { AA aa = new BB(); System.out.println(aa.sum()); // 40 System.o原创 2021-08-30 19:25:30 · 113 阅读 · 0 评论 -
Java基础——多态
多态1、方法的多态package day02;public class Demo2 { public static void main(String[] args) { // 方法重载体现多态 B b = new B(); b.sum(10, 20); b.sum(10, 20, 30); // 方法重写体现多态 A a = new A(); a.say();原创 2021-08-30 18:42:12 · 86 阅读 · 0 评论 -
Java基础—— “ super ” 关键字
super 关键字supersuper代表父类的引用,用于访问父类的属性、方法、构造器1、基本语法:访问父类的属性,但不能访问父类的private属性:【案例】super.属性名;访问父类的方法,不能访问父类的private方法:【案例】super.方法名(参数列表);访问父类的构造器(这点前面用过):继承里的supersuper(参数列表);只能放在构造器的第一句,只能出现一句!2、super 给编程带来的便利 / 细节:调用父类的构造器的好处(分工明确,父类属性由父类初始化,子类原创 2021-08-30 11:30:55 · 165 阅读 · 0 评论 -
Java基础——继承
继承继承继承可以解决代码复用,让我们的编程更加靠近人类思维。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可。1、继承的好处:代码的复用性提高了代码的可扩展性和可维护性提高了2、继承的细节:子类继承了所有的属性和方法,非私有的属性和方法可以在子类中直接访问,但是私有属性和方法不能在子类直接访问,要通过父类提供的公共的方法去访问。private int原创 2021-08-30 10:49:09 · 92 阅读 · 0 评论 -
Java基础——封装
封装、继承、多态封装封装(encapsulation)就是把抽象出的数据【属性】和对数据的操作【方法】封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作【方法】,才能对数据进行操作。1、封装的好处:隐藏实现细节方法(连接数据库)<-- 调用(传入参数…)可以对数据进行验证,保证安全合理2、封装的步骤:将属性进行私有化【不能直接修改属性】提供公共的set方法,用于对属性判断并赋值public void setXxx(类型参数名){ // 加入数据验证的业原创 2021-08-30 10:48:25 · 133 阅读 · 0 评论 -
Java基础——“==” 和 “equals” 的对比
== 和 equals 的对比==:是Java中的运算符==:既可以判断基本类型,又可以判断引用类型==:如果判断基本类型,判断的是值是否相等。如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象equals:是Object类中的方法,只能判断引用类型。默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。比如Integer,String。原码如下:// Object 类中的 equals 方法public boolean equals(Object obj)原创 2021-08-27 19:20:18 · 49 阅读 · 0 评论 -
Java基础——二进制、原码、反码、补码、位运算符
Java基础——day02二进制二进制:是指在数学和数字电路中以2为基数的记数系统,二进制只有0和1两个数字符号,其运算规律是逢2进1,一般用字母B结尾,0b或0B开头表示二进制数,例如101101B,0b101101八进制:一种以8为基数的计数法,采用0,1,2,3,4,5,6,7这八个数字符号,其运算规律是逢8进1,一般用字母Q结尾,或0开头表示八进制数,例如77Q,077十进制:一种以10为基数的计数法,采用0,1,2,3,4,5,6,7,8,9这十个数字符号,其运算规律是逢10进1,一般用原创 2021-08-27 18:41:07 · 266 阅读 · 0 评论 -
Java基础——特点
Java跨平台性Java开发注意事项和细节一个源文件中最多只能有一个public类。其它类的个数不限。如果源文件包含一个public类,则文件名必须按该类名命名!一个源文件中最多只能有一个public类。其它类的个数不限,也可以将main方法写在非 public 类中,然后指定运行非 public 类,这样入口方法就是非 public 的 main 方法. java源码中有几个类,经过 javac 编译后就会得到几个 .class 字节码文件相对路径和绝对路径**..\**表示上一级原创 2021-08-27 15:41:38 · 47 阅读 · 0 评论 -
静态方法和非静态方法的调用
静态方法和非静态方法的调用静态方法依赖于类,不需要创建对象:类名.方法名非静态方法依赖于对象,需要新建对象(new出一个对象),用对象来调用方法:对象名.方法名原创 2020-12-02 20:54:30 · 121 阅读 · 0 评论 -
JDK11、12、13没有jre的解决办法
JDK11、12、13没有jre的解决办法1、打开C:\Windows\System32目录,找到cmd.exe,单击选中后右键,菜单中选择“以管理员身份运行”。2、输入 “cd+JDK的安装路径”:本机为JDK路径为:C:\Program Files\Java\jdk-13输入 cd C:\Program Files\Java\jdk-13 ,回车使用命令bin\jlink.exe --module-path jmods --add-modules java.desktop --o原创 2021-04-04 16:18:29 · 266 阅读 · 0 评论 -
******星号三角形
package pra;public class Triangle { public static void main(String[] args) { // 1 for (int i = 1; i < 11; i++) { for (int j = 11 - i; j > 0; j--) { System.out.print("*"); } System.out.println(); } System.out.println();原创 2021-03-23 14:57:57 · 108 阅读 · 0 评论