- 博客(23)
- 收藏
- 关注
原创 String类的理解
实际上String是在栈中引用String对象地址,String对象是引用byte[ ]数组地址首先每次直接创建“”字符串都是在字符串常量池开辟内存(其实也是new出来的,但是存储机制不同),如果后续用到相同的字面值则直接使用相同地址。所以直接创建出来的“”字符串,只要字面值相同,则地址相同。其次 通过new出来的的字符串,是在堆中直接开辟空间,每个new都会使用新的内存空间。所以只要是new出来的字符串,地址必然不同。因为String不是基本类型,所以用的是引用地址。但是比较特殊的是String.
2021-03-18 16:05:58
176
原创 测试类小tips
一个java文件下 可以写多个class不同于内部类的模式public class Outer{public class Inner{}}有时候我们可以直接把测试类写在需求类的下面(在同一个java文件)这样可以省去引用的麻烦需要注意的是 一个java文件的根目录下只能有一个public的classclass Application{}class Test{}...
2021-03-04 16:50:11
119
1
原创 This关键字
和super对应,很像在默认构造器里其实就是默认的this();或者super(); 它和**className();**等价先说结论:一:this就指代这这个类的一个实例,但是并没有赋给它名字public class Outer { private int id; public Outer(){ } public Outer(int id){ //this 和 super很像 this()就等于new className()
2021-03-04 16:13:40
1460
1
原创 接口
接口大公司就是提前定义好接口 提前约束好你需要实现什么数据这样就可以让员工们去分别实现这个功能接口其实和抽象类很像 只是关键字 和 单继承关系不一样接口是定义好interface文件 然后用一个class implements 这个interface文件(在里面override方法)抽象是定义好abstract文件 然后用一个class extends 这个abstract文件(在里面override方法)注:接口里所有的方法默认都是 public abstract 的隐藏修饰publi
2021-03-03 23:20:12
119
1
原创 抽象类、方法
通过abstract修饰的类、方法它只是约束 暂时不写 但是作为结构方便调用 可以等别人帮我们实现代码里的内容 或者留着以后填充抽象类1. 抽象类不能new 只能靠子类去实现的 想new也是new实现了它的子类2. 只要有抽象方法,这个类就是抽象类3. 继承他的子类 必须要需要重写他的抽象方法 普通方法可以不用重写4. 如果子类也是抽象类的话 则可以不用重写//abstract 抽象类public abstract class Action { //约束 暂时不写 但是作为结构方便
2021-03-03 22:51:24
162
1
原创 一些小知识(static、代码块、final、静态导入包
代码块代码块可以写在构造器之前 用于 初始化 一些构造器之前的东西分为匿名代码块和静态代码块两种结论一: 当构造一个对象时,先执行1.静态代码块 2.匿名代码块 3.构造器结论二: 静态代码块只会在类加载时第一顺位执行,且只执行一次public class Person { //代码块主要用于初始化一些在构造对象之前的东西 //代码块(匿名) 第二加载顺位 { System.out.println("匿名代码块"); } //静态代码块
2021-03-03 22:24:51
130
1
原创 多态 类型转换
和基本数据类型转换非常相似至于转换前后区别及作用,可以参考方法调用博客public void typeChange(){ //类型转换 小到大可以自动转换 //例如 int a = 0; double b = a; //大到小需要用强制转换符 //double c = 2.1231; int d = (int)c; //父子类型转换同理 低到高可以自动转换 //高到低需要手动转换 Pers
2021-03-03 22:14:05
103
1
原创 多态 instanceOf(判断是否有继承关系
注意多态前提条件 继承、重写、父类对象引用子类构造先说结论 X instanceOf Y 能不能编译通过,主要看XY是不是一条父子关系上的爆红说明没有继承关系,true说明X是Y的同级或子级,false则是同级或父级public void instanceOf(){ //先说结论 X instanceOf Y 能不能编译通过,主要看XY是不是一条父子关系上的 //Object > String //Object > Person > S
2021-03-03 17:12:40
339
1
原创 继承 override
先说结论:静态方法是类的方法。非静态方法是对象的方法。所以静态的static test方法只看类的,所以Person p是用了Person类的static test方法而非静态的test方法,由于p是Stuent new出来的,所以是作为Student的对象用了重写test方法static的方法无法重写其实用子类去构造父类的目的就是用子类去重写父类的方法。重写的条件:方法名必须相同参数列表必须相同修饰符:范围只能相等或扩大异常:范围只能相等或缩小为什么要重写:子类可能不需要父类的
2021-03-02 11:45:29
256
原创 继承 super
super和this是相对应的。一个指代父级 一个指代自己。因为java是单继承的,所以super只能固定指向一个父级,合理。
2021-03-02 10:45:45
98
1
原创 继承 extend
Ctrl+H 查看继承关系快捷键public class Application { public static void main(String[] args) { //继承只会继承父类公开的(允许的) Student student = new Student(); //虽然student本身没有 但是他继承了父类的全部public的方法 student.say(); //虽然student本身没有 但是他继承.
2021-02-27 23:51:04
138
原创 构造器
package Constructor;public class Person { String name; //自动生成基本构造器、各种方法的快捷键是 //Alt+Ins //一个类即使什么都不写,在java文件转换class时也会默认生成一个无参构造器 //使用new关键字,本质是在调用构造器 //构造器另一个作用就是初始化值 public Person(){ this.name = "default"; }
2021-02-27 21:13:20
80
原创 稀疏数组
public static void main(String[] args) { //多维数组 没啥锤子用 int[][] a = {{1,2},{1,2,3},{1,2,3,4}}; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { System.out.println(a[i][j..
2021-02-26 17:04:39
88
原创 重载和可变参数
public class overWrite { public static void main(String[] args) { //这就是方法重载,包括参数个数、类型、顺序的不同 System.out.println(add(1,2)); System.out.println(add(1,2,3)); } public static int add(int a, int b) { int result = a +.
2021-02-23 12:36:09
211
原创 命令行传参数
编译时可以在任何目录进行java→class的编译如果java文件里内涵package 则需要在package目录下进行运行class
2021-02-23 12:15:09
90
原创 Scanner
深入:两者均根据空格划分数据两者在没有数据输入时均会等待输入(但是nextInt等判断类型,没有数据后并不会要求输入next()方法会将空格划分的数据依次输出,运行一次,输出一个hasNext()方法会跟着next()方法移动,当前数据不为空,则返回true...
2021-02-21 02:07:42
118
原创 变量常量、作用域、运算符
类变量 static{}实例变量 在field中局部变量 在method中(必须声明和初始化package Operation;public class Demo1 { public static void main(String[] args) { // and or 非 boolean a = false; boolean b = true; System.out.println(a&&b); .
2021-02-19 15:27:12
77
原创 数据类型(primitive type & reference type)
public class DataType { //empty field public static void main(String[] args){ DataType d = new DataType(); d.primitiveType(); d.referenceType(); } //default constructor public DataType(){ } public void p
2021-02-18 15:41:19
492
原创 IDEA project structure, SDK & language level (new empty project)
首先在IDEA里new一个新的 empty project(Java SE首先在IDEA里new一个新的 empty project(先叉掉project structure,后续会说现在的话,并没有办法写代码。因为这是一个空的项目。想写java的话,需要添加java的modulenew一个module,选择java后,一路next到finish现在,你就可以在java module里写代码了。从这里可以看出,我们的代码实际运行是基于你设置的module。而module里面的各种设..
2021-02-17 15:18:15
4383
原创 第一个Hello World/ public static void main
java文件名后缀为 .javapublic class Hello{ public static void main(String[] args){ System.out.print("Hello,World."); System.out.println("Hello,World."); }}写完HelloWorld后 用cmd 本地位置前加 cmd打开使用javac命令编译 javac Hello.java (生成的class文件就是编译结果
2021-02-17 11:58:13
727
原创 Java杂谈
Java基础信息:SE 桌面/标准应用EE enterprise Edison 企业版(服务器)ME 移动端(嵌入式)比如手机、小家电Java中的JVM,JRE,JDKJVM: Java virtual machine 虚拟机JRE: Java run environment 运行环境JDK: Java Develop Kit 开发者 工具Java特点:Java的可移植性和跨平台主要因为JVM(虚拟机)。其中JRE包含JVM和一些常用包、库。有了JRE才能运行开发人员写好的java文
2021-02-16 15:41:29
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人