![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
仰望星空的快乐
加油加油加油加油
展开
-
线程基本方法
继承Thread类的线程,可以直接使用.setName()方法,设置线程名。也可以使用构造方法,需要注意java默认不继承构造方法,所以需要自己调用下父类的构造方法。但是不能使用构造方法,因为他不像上面继承Thread类的线程,他没有父类的构造方法可以调用。2. join方法 当前线程需要等待 调用join方法的线程执行完毕,当前线程才能继续执行。就像舔狗(守护线程)和女神(非守护线程),如果女神走了,那舔狗啥都不管,也走。守护线程:当其他非守护线程执行完毕,守护线程不管是否执行完毕,都会停止。原创 2023-11-27 22:33:06 · 163 阅读 · 0 评论 -
java线程三种方式
3.实现Callable接口 ,这种实现方式可以接收线程的返回值。2.实现Runnable接口 线程1.2交替执行。1.继承Thread类 线程1.2交替执行。原创 2023-11-27 21:51:28 · 231 阅读 · 0 评论 -
抽象类中的成员
1.属性 可以是变量,可以是常量2.构造方法 有构造方法,但是不能实例化抽象类,所以,构造方法的作用是什么?答:子类可以通过多态来访问父类中的属性和非静态方法,构造方法用于在这时候给抽象类中的属性赋值调用package com.class_decoration;public class test { public static void main(String[] args) {// Animal animal=new Animal();会报错,不能直接实例化抽象类原创 2022-04-24 00:13:51 · 511 阅读 · 0 评论 -
java的抽象方法和抽象类
一个方法,要么是抽象方法,要么必须给出方法的具体实现。比如我有个animal类,有个吃东西方法,我不希望在animal类中给出这个方法的具体实现,因为不同动物,吃的东西不一样。所以要给这个方法声明为抽象方法,不写具体的实现1.抽象类和抽象方法都必须使用abstract来修饰package com.class_decoration;public abstract class Animal { public abstract void eat();}2.抽象类不能被实例化,原创 2022-04-23 23:37:27 · 1191 阅读 · 0 评论 -
java类的向上和向下转型
Animalanimal=newDog();//向上转型,把子类对象赋值给父类Dog dog=(Dog)animal;//向下转型,将之前的animal强转为子类,就可以访问子类自己定义的方法了package com.class_decoration;public class test { public static void main(String[] args) { Animal animal=new Dog();//向上转型,把子类对象赋值给父类 D....原创 2022-04-23 22:21:54 · 178 阅读 · 0 评论 -
java多态
同一个对象,在不同时刻表现出的不同形态举例:猫我们可以说猫是猫 猫 cat =new 猫();我们可以说猫是动物 动物 animal=new 猫();这里猫在不同时刻表现出了不同的形态,这就是多态多态的前提和实现1.有继承/实现关系2.有方法的重写3.有父类引用指向子类对象使用多态创建的类,虽然占用了子类大小的内存,但是只能访问父类中的变量和方法如果访问子类中重写了父类的方法,调用时,会访问到子类中重写的方法......原创 2022-04-23 22:11:32 · 370 阅读 · 0 评论 -
java成员变量和非成员变量的区别
成员变量 在类中的方法外 在堆中 随着类存在 有默认的初始化值,可以直接使用局部变量 在类中的方法内 在栈中 随着方法的调用存在 没有默认的初始化值,必须先赋值才可以使用public class test{ public int chengyuan; public void method(){ int jubu; chengyuan=100; System.out.println(chengyuan);...原创 2022-04-23 17:31:14 · 349 阅读 · 0 评论 -
java内部类
java提高篇(八)----详解内部类 - chenssy - 博客园1.成员内部类内部类可以随意使用外部类中的方法和属性但是外部类不能访问内部类的方法和属性注意:内部类中不能写任何static的方法和属性成员类是依附于外部类的,所以必须先创建外部类,再创建内部类。package com.test.class_decoracion;public class OuterClass { private String name ; private int age;.原创 2022-04-05 11:07:55 · 289 阅读 · 0 评论 -
什么是接口
应用程序编程接口编写一个程序去控制机器人踢足球,机器人厂商会提供一些用于控制机器人的接口类,这些类中定义了操作机器人移动的各种方法,这些接口就是机器人厂商提供给应用程序编程的接口,java中的api:指的就是jdk中提供各种功能的java类...原创 2022-04-23 17:58:39 · 115 阅读 · 0 评论 -
java中的函数式接口
函数式接口是有且仅有一个实现方法的接口lamdba只能实现函数式接口spring5中实现lamdba 函数式接口package hello2;@FunctionalInterfacepublic interface Lambda01 { public int add(int a,int b);}package hello2;public class Lamdba02 { public static void main(String[] args) {原创 2022-04-05 00:51:42 · 167 阅读 · 0 评论 -
java的显式接口和隐式接口
抽象方法:只有定义,没有函数体的方法,用abstract修饰,接口中的方法全部都是抽象方法,所以省略了abstract关键字显式接口指正常的实现接口 注意要把接口中所有的方法都实现package com.test.class_decoracion;public class Myinterfaceimpl implements MyInterface{ @Override public void a() { System.out.println("a方法的实现原创 2022-04-05 00:41:52 · 844 阅读 · 0 评论 -
java的类、方法、属性的 访问修饰符
1.这个类的main函数中 声明这个类并且调用,是可以的,不会报错public class Neibu_test { public int a=10; public static void main(String[] args) { Neibu_test b=new Neibu_test(); System.out.println(b.a); }}2....原创 2022-04-05 00:23:32 · 492 阅读 · 0 评论 -
idea文件夹颜色不对,不能新建java类
IDEA 文件夹颜色对目录的影响分析_毕小宝的博客-CSDN博客_idea目录变黄原创 2022-03-20 16:18:45 · 1466 阅读 · 0 评论 -
通过反射获得注解
package com.reflection;import java.lang.annotation.*;import java.lang.reflect.Field;public class test08 {public static void main(String [] args) throws ClassNotFoundException, NoSuchFieldException { Class c1=Class.forName("com.reflection.test011.原创 2022-03-11 22:05:55 · 914 阅读 · 0 评论 -
java的泛型
一。泛型的作用用来限制输入数据或者参数的类型public class test7{ public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn"); list.add(100); for (int i = 0; i < list.size(); i+原创 2022-03-09 17:04:52 · 186 阅读 · 0 评论 -
类的加载器
类加载的作用将class文件字节码内容加载到内存中,并将这些静态数据转换为方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.class对象,作为方法区中类数据的访问入口类缓存标准的javase类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载一段时间,不过jvm垃圾回收机制可以回收这些class对象类加载器的作用是用来把类加载进内存的,jvml规范定义了如下类型的类加载器双亲委派机制比如说我定义一个java.lang.Strin原创 2022-03-08 19:44:43 · 176 阅读 · 0 评论 -
java类的执行步骤
1.加载,生成某类对应的java.lang.class对象2.链接,将加载的类的二进制代码合并到 JVM中,为静态变量声明内存空间3.初始化,执行类的构造器(不是对象的构造器),为静态变量赋值,并执行静态代码块(静态代码块和静态变量赋值,谁在前面就先执行谁,如下)(初始化是这样的:使用cinit方法,将静态变量、静态方法放到一起,然后一起赋值,执行)package com.reflection;import com.sun.org.apache.bcel.internal.generi原创 2022-03-08 13:31:48 · 2072 阅读 · 0 评论 -
java输出一个对象在内存中的地址
package com.reflection;import java.lang.reflect.Field;import sun.misc.Unsafe;public class test01 { static final Unsafe unsafe = getUnsafe(); static final boolean is64bit = true; // auto detect if possible. private static Unsafe getUnsafe().原创 2022-03-07 21:34:06 · 1929 阅读 · 0 评论 -
java的反射
反射是java被视为动态语言的关键,反射机制允许程序在执行期间接住reflection api获取任何类的内部信息,并能直接操作任意对象的内部属性及方法加载完类之后,在堆的内存的方法区就产生了一个class类型的对象(一个类只有一个class对象),这个对象就包含了类的完成的结构信息,我们可以通过这个对象看到类的结构。所以,称之为反射获得class对象的方法1.Class clazz = Class.forName("java.lang.Object");User user=new Use原创 2022-03-07 20:59:19 · 66 阅读 · 0 评论 -
java注解
Annotation的作用:不是程序本身,可以对程序作出解释可以被其他的程序比如编译器等读取Annotation的使用范围:在package/class/method/field等都可以使用,相当于给他们添加了额外的辅助信息内置注解@override定义在java.lang.override中,这个注解只用于修饰方法,表示一个方法声明打算重写超类中的另一个方法声明@deprecated定义在java.lang.deprecated中,此注释可以用于修饰方法,属性,类,不建议使原创 2022-03-07 18:28:15 · 207 阅读 · 0 评论 -
javamap
1.linkedhashmap继承自map类HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。 public static void main(String[] args) {..原创 2022-02-26 17:19:59 · 122 阅读 · 0 评论 -
JAVA的linkedlist
基本上等同于ArrayList与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。以下情况使用 ArrayList :频繁访问列表中的某一个元素。 只需要在列表末尾进行添加和删除元素操作。以下情况使用 LinkedList :你需要通过循环迭代来访问列表中的某些元素。 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。1.在开头和结尾添加元素 public static void main(String原创 2022-02-26 16:32:19 · 111 阅读 · 0 评论 -
list(集合)
list,是一个接口,继承自collection,所有colletcion的方法都可以用。list的最常用的实现类是ArrayList。ArrayList有如下方法1. .add 向list中插入元素public static void main(String[] args) { List list=new ArrayList(); list.add("qiezi"); list.add("hongshu"); Syste...原创 2022-02-05 11:17:19 · 632 阅读 · 0 评论 -
java的输入输出流
按流向分:输入流: 从文件中读取数据到程序输出流: 从程序向文件中写入数据按数据传输单位分:字节流: 以字节为单位传输数据的流字符流: 以字符为单位传输数据的流,在不同编码中,一个字符等于不同的字节数(ASCII码:一个中文汉字占两个字节。UTF-8编码中一个中文(含繁体)等于三个字节。)按功能分:节点流: 用于直接操作目标设备的流过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能JDK所提供的所有流类位于java.io包中,都分别继原创 2022-02-23 22:50:46 · 3581 阅读 · 0 评论