Java
文章平均质量分 50
Java基础与Java高级
唯你九千七
你所不知道的远方,都是值得一去的天堂!
因为有人海,相遇才变得意外!!!
展开
-
线程的概念
在多线程编程,一些敏感的数据不允许多个线程同时访问,此时使用同步机制,保证数据在任何同一个时刻,最多有一个线程访问,以保证数据的完整性。1.yield:线程的礼让,让出CPU,让其他线程执行,但礼让的时间不确定,所以也不一定礼 让成功。4.当前线程在同步代码块、同步方法中执行了线程对象的wait()方法,当前线程暂停,并且释放锁。2.join:线程的插队,插队的线程一旦插队成功,则肯定先执行完插入的线程的所有任务。守护线程:一般是为各种线程服务的,当所有的用户线程结束,守护线程自动结束。原创 2023-06-14 18:46:30 · 39 阅读 · 0 评论 -
网络通信小结
tcp网络通信,当客户端连接到服务器端后,实际上客户端也是通过一个端口和服务端进行通讯的,这个端口是tcp/ip随机分配的。IP地址的组成=网络地址+主机地址,如192.168.11.5 (192.168.11是网络地址)(5是主机地址)端口:用于标识计算机上某个特定的网络程序(范围0-65535,即2个字节表示端口)netstat -an 可以查看当前主机的网络情况,包括端口监听和网络连接情况。2.传输前,采用“三次握手”方式,是可靠的。5.传输完毕,需释放已建立的连接,效率低。原创 2023-06-14 18:48:29 · 45 阅读 · 0 评论 -
继承知识点小结
3.当创建子类对象时,不管使用子类的那个构造器,默认都会调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类构造器中用super去指定使用父类的那个构造器完成对父类的初始化工作,否则编译不会通过。1.子类继承了父类所有的属性和方法,但是私有属性和方法不能在子类直接访问,要通过父类提供的公共方法去访问。8.父类构造器的调用不限于直接父类,将一直追溯到Object类(顶级父类)2.子类必须调用父类的构造器,完成对父类的初始化。9.子类最多只能继承一个父类。所有构造器的第一行都有默认的构造器。原创 2023-06-14 18:43:23 · 43 阅读 · 0 评论 -
反射机制的说明
加载:将类的class文件读入内存,并为之创建一个java.lang.Class对象,此过程由类加载 器完成。类加载后内存的布局情况:类的字节码二进制数据保存到方法区,在堆中生成类的Class对象,类的字节码二进制数据引用类的Class对象。java源文件(.java)--编译--》java字节码文件(.class)--运行--》类加载(3阶段)通过类加载器获取到类的Class对象:类加载器.loadClass(类的全路径)加载---->连接(验证、准备、解析)---->初始化。原创 2023-06-14 18:40:57 · 37 阅读 · 0 评论 -
泛型与String
2.方式二:先在堆中创建空间,里面维护了value属性,指向常量池的hsp空间,如果常量池没有"hsp",重新创建,如果有,直接通过value直接指向,s2最终指向的是堆中的地址。泛型的作用:在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型;想要获取泛型的类型,通过T.getClass()获取,T是泛型。intern()方法最终返回的是常量池中的地址,s2.intern()返回的是常量池中“hsp”的地址,如果没有则在常量池创建字符串,返回字符串地址。原创 2023-06-14 18:42:04 · 209 阅读 · 0 评论 -
this和super关键字
5.this不能在类定义的外部使用,只能在类定义的方法中使用(例如name和this.name在使用的时候,name会根据就近原则查找,而this.name直接定位属性)6.静态代码块只能直接调用静态成员(静态属性和静态方法),普通代码块(也可以说普通方法,静态是属于类级别的,普通是属于对象级别)可以调用任意成员。1.static代码块也叫静态代码块,作用是对类进行初始化,随着类的加载而执行,且只执行一次,普通代码块,每创建一个对象,就执行。(1)父类的静态代码块和静态属性(优先级一样,按定义顺序执行)原创 2023-06-14 18:39:34 · 35 阅读 · 0 评论 -
抽象类细节
(6)接口中的属性只能是final的,而且是public static final修饰符,比如:int a = 1;3.接口存在多态传递现象,一个类实现了一个接口,而该接口又继承了另外一个接口,那么这个类的实例可以被两个接口所引用。(3)一个类实现接口,必须实现接口的所有方法(alt+enter快速实现所有方法)(2)接口中所有的方法是public方法,抽象方法可以不用abstract修饰。(9)接口和类的修饰符是一样的,只能是 public 和默认。(4)抽象类实现接口,可以不实现接口的抽象方法。原创 2023-06-14 18:39:47 · 62 阅读 · 0 评论 -
四种内部类的说明
5.如果外部类和匿名内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,使用 外部类名.this.成员 访问。7.如果外部类和内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,使用 外部类名.this.成员 访问。7.内部类访问外部类成员,重名遵循就近原则,访问方式 外部类名.this.属性。(3)该类没有名字;6.外部其他类访问成员内部类(外部类对象.内部类对象.内部类成员)5.外部其他类访问静态内部类,访问方式 外部类名.内部类对象.属性。(1)成员内部类(没有static修饰)原创 2023-06-14 18:45:52 · 35 阅读 · 0 评论 -
Java异常说明
如果在try+catch中有return,先执行finally在执行return;Throwable是Error和Exception的父类,Exception分为编译异常(检查异常)和运行时异常。手动抛出非运行时异常,方法声明处,要配合throws声明抛出异常类型,否则编译通不过。异常处理5个关键字:try、catch、finally、throw、throws。throws声明异常,声明方法可能抛出的各种异常。语法:throw new 异常类型(异常信息)throw抛出异常,手动抛出异常。原创 2023-06-14 18:45:17 · 37 阅读 · 0 评论 -
Java集合框架
答:可以,LinkedList是List接口实现类,存储元素是有序的,所以元素有下标,根据下标获取元素也是支持的,但是根据下标获取元素方式跟ArrayList不同,首先确定下标值是否有效,范围是0-(元素个数-1),如果下标有效,进行二分查找。5.java8中,如果链表的长度达到8,并且数组的大小 >= 64,就会进行树化(变成红黑树),如果链表长度达到8,数组以2倍进行扩容(即链表长度达到8,进行黑化,进行黑化需要判断数组的长度是否 >= 64,大于才满足黑化的条件)线程不安全,没有实现同步。原创 2023-06-14 18:44:34 · 127 阅读 · 0 评论