JAVA
十一.11
这个作者很懒,什么都没留下…
展开
-
String类
String字符串不可被继承;实现了Comparable、SerializableString的不可变性String的实例化方式方式一:使用字面量方式。 String s = “hello”方式二:String s = new String(“hello”);【面试题】String s = new String(“hello”)在内存中创建了几个对象? 两个!内存解析:jdk6时,字符串常量池是存放在永久代jdk7时,字符串常量池改为存放在堆空间jdk8时,取消了永...原创 2022-01-29 19:44:47 · 607 阅读 · 0 评论 -
JAVA图形图像
1.AWT继承体系1.Frame/JFrame–窗口(容器)所有容器都依附于Window//创建窗口对象Frame frame=new Frame("这是个窗口");//设置窗口位置,单位pxframe.setLocation(100, 100);//设置窗口大小frame.setSize(20, 20);//设置窗口可见frame.setVisible(true);2.Panel(容器)–1.创建window对象-frame2.创建Panel对象-p3.添加文本框p.ad原创 2021-05-27 19:56:12 · 97 阅读 · 0 评论 -
反射
二、熟悉反射的使用2.1 反射的理解反射的概述java给我们提供了一套api(java.lang.reflect),程序员可以使用这套api实现:> 动态的获取内存中的运行时类;> 动态的创建运行时类的对象;> 动态的调用运行时类中的指定结构:属性、方法反射的应用Java反射机制提供的功能: 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时获取泛型信息 在运行时调用任意一个对象的成员变原创 2021-05-16 21:19:10 · 63 阅读 · 0 评论 -
网络编程
五、网络编程概述5.1 实现网络通信,待解决的问题* 1. 如何准确地定位网络上一台或多台主机;定位主机上的特定的应用* 2. 找到主机后如何可靠高效地进行数据传输5.2 如何解决上述问题网络通信的两大要素:* 要素一:IP 和 端口号。 解决问题1* 要素二:网路通信协议。 解决问题25.3 要素一和要素二的概述:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Bp5SznI-1620890281451)(day27笔记.assets/原创 2021-05-13 16:22:53 · 54 阅读 · 0 评论 -
线程的生命周期以及死锁问题
线程的生命周期:死锁问题:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁问题。类似:有A和B两人,一人只有一根筷子,都需要对方的筷子才能吃饭。但互相都不退让,导致一直僵持出现死锁后,不会出现异常,不会出现提示,知识所有的线程都处于阻塞状态,无法继续。解决死锁问题:专门的算法、原则尽量减少同步资源的定义尽量避免嵌套的同步...原创 2021-05-11 22:33:40 · 126 阅读 · 0 评论 -
其他的处理流(了解)
七、处理流之三:对象流7.1 举例说明序列化过程//序列化过程:ObjectOutputStream:实现内存中的数据,写入到具体的文件中 @Test public void testObjectOutputStream() throws Exception { //1.创建文件和流 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.dat"));原创 2021-05-10 21:02:51 · 45 阅读 · 0 评论 -
集合-Map
二、复习整体把握层次一:针对不同特点的数据,能够选择对应接口的主要的类进行实例化和方法的调用层次二:熟悉接口的不同的实现类的区别、特点层次三:相关接口实现类的底层实现:存储结构集合框架List结构|-----Collection:存储一个一个的数据 * |-----List:存储有序的、可以重复的数据 : 替换数组,"动态数组" * |-----ArrayList:List的主要实现类;线程不安全的,效率高;底层使用Object[]存储 |-----Link原创 2021-05-05 09:39:45 · 80 阅读 · 0 评论 -
泛型
五、泛型(Generic)的使用5.1 泛型的理解泛型:标签举例:中药店,每个抽屉外面贴着标签超市购物架上很多瓶子,每个瓶子装的是什么,有标签泛型的设计背景集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Co原创 2021-05-02 22:55:13 · 120 阅读 · 0 评论 -
IO类
三、IO流概述流的分类按操作数据单位不同分为:字节流(8 bit),字符流(16 bit) 按数据流的流向不同分为:输入流,输出流按流的角色的不同分为:节点流,处理流流的继承关系4个抽象基类:InputStreamOutputStreamReaderWriter说明:上图中蓝色背景的流是本章的重点。四、节点流的使用4.1 FileReader 和 FileWriter//FileReader的基本使用 @Test public void t原创 2021-04-28 17:57:18 · 74 阅读 · 0 评论 -
String类
String字符串不可被继承;实现了Comparable、SerializableString的不可变性String的实例化方式方式一:使用字面量方式。 String s = “hello”方式二:String s = new String(“hello”);【面试题】String s = new String(“hello”)在内存中创建了几个对象? 两个!内存解析:jdk6时,字符串常量池是存放在永久代jdk7时,字符串常量池改为存放在堆空间jdk8时,取消了永...原创 2021-04-24 22:49:42 · 86 阅读 · 0 评论 -
集合-Set
四、Set的使用4.1 主要实现类和方法主要实现类就是:HashSet常用方法:Set接口中声明的方法都是Collection接口声明过的。HashSet能使用的就是Collection中定义的方法。@Test public void test1(){ Set set = new HashSet(); set.add(223); set.add(new String("AA")); set.add("CC"); set.add(223); set.add(new原创 2021-04-14 19:30:15 · 88 阅读 · 0 评论 -
集合
五、集合概述与Collection (掌握)5.1 数组的特点和弊端 * 一、Java的内存层面,对多个对象进行统一的管理和操作的容器有什么呢? 数组、集合 * * 二、1. 数组在存储数据方面的特点: * > 数组一旦初始化以后,其长度就是确定的。 * > 数组有索引,可以方便的对指定位置上的元素进行查找、替换 * > 数组存储的数据:有序的、使用连续的内存空间 * > 数组在定义时,就明确了存储的数据的类型。 * 比如:String[]原创 2021-04-04 17:11:35 · 121 阅读 · 1 评论 -
异常
说明: * 异常处理的方式二:使用"throws + 异常类型",声明在方法的声明处 * * 1. 方法内根据可能产生的异常对象的类型,在方法的声明处使用throws的方法,抛出此异常的类型即可 * 2. 使用了throws的方式处理异常,并没有根本上解决异常,只是将异常抛给方法的调用者。 * 比如:method1()将异常抛给了method2() * |---- java.lang.Error:Java虚拟机无法解决的严重问题。 * 如:JVM系统内部错误、资源耗尽等严重情况原创 2021-03-28 16:30:02 · 96 阅读 · 0 评论 -
面向对象三大特征的理解
封装性:封装结构到类中;4种权限修饰符修饰类及类的内部结构,体现可见性的大小;举例继承性:继承性的好处;类的单继承性多态性:子类对象的多态性+虚方法调用;举例;如果没有多态性,抽象类和接口的声明就没有意义!对万事万物皆对象的理解:用java语言编写项目、描述客观世界,都需要由类派生的对象去刻画层次一:字符串:String,数值类型:包装类,日期:Date,。。。。层次二:文件:File;IP地址:InetAddress ; 具体网址:URL层次三:Java语言与其他语言的交互:XML 、数.原创 2021-03-28 16:09:15 · 150 阅读 · 0 评论 -
线程优先级以及线程通信
线程的优先级:线程的等级:MIN_PRIORITY:1NORM_PRIORITY:5MAX_PRIORITY:10如何设置和获取优先级getPriority:获取setPriority(int priority):设置调度策略:高优先级的线程要抢占低优先级的策略。高优先级的线程只是从概率上来讲要比低线程更大概率的被执行,并不会完全一定优先于低线程执行...原创 2021-03-25 22:40:14 · 103 阅读 · 0 评论 -
多线程
进程:是程序的一次执行过程,有生命周期。系统在运行时会为每个进程分配不同的内存区域线程:进程可进一步细化为线程,是一个程序内部的执行的路径若一个进程同一时间并行执行多个线程,就是支持多线程的分线程对象的创建线程:方式一:继承Thread类创建Thread类的子类重写Thread类的run();将当前线程要执行的操作声明在run内()实例化Thread类的子类(在main中)通过Thread类的子类对象调用其start();start()方法的作用启动进程调用当原创 2021-03-15 20:33:25 · 100 阅读 · 0 评论 -
JVM存储机制(栈、堆、方法区)
堆区: 堆这块区域是JVM中最大的,应用的对象和数据都是存在这个区域,这块区域也是线程共享的,也是 gc 主要的回收区,一个 JVM 实例只存在一个堆类存,堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,以方便执行器执行,堆内存分为三部分:新生代、年老代、永久代1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区:转载 2021-03-04 09:08:36 · 550 阅读 · 1 评论 -
Annotation(注解)
理解:jdk5.0新增的特性Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载运行时被读取,并执行相应的处理原创 2021-02-22 22:01:31 · 76 阅读 · 0 评论 -
枚举
1. 概念:类的对象只有有限个,确定的。此类可以看做是枚举类。2. 举例:星期、性别、季节等3. 当需要定义一组常量时,强烈建议使用枚举类4. 如果枚举类的对象只有一个,则枚举类可以看作单例模式的实现方式5. 如何自定义枚举类1.创建私有化属性,private、final2. 私有化构造器3. 创建枚举类中的对象:public static final6. 如何使用enum关键字自定义枚举类(jdk5.0)enum Seanson{ // 声明对象-必须省略public原创 2021-02-22 16:04:46 · 55 阅读 · 0 评论 -
内部类
理解:我可以在类A的内部定义一个类B,B为A的内部类,A为B的外部类内部类的分类:成员内部类(静态的、非静态的) vs 局部内部类(方法内、代码块内、构造器内)3. 成员内部类的理解3.1. 成员内部类作为一个类可以被abstract修饰,表示不能被实例化可以被final修饰,不能被继承3.2成员内部类作为外部类的成员,可以被4中权限修饰符修饰可以被static修饰可以调用外部类的结构(主要是属性、方法)内部类的使用:Person–外部类Dog-静态内部类Bird-内部类.原创 2021-02-19 16:17:25 · 75 阅读 · 0 评论 -
接口
1.关键字:interface2.与类并列的结构3.jdk7之前,接口中只能定义全局变量(public static final) 和抽象方法(public abstract);常量的public static final可以省略抽象方法的public abstract也可以省略jdk8中,接口还可以定义静态方法和默认方法jdk9中,接口还可以定义私有方法接口中没有构造器!接口不可以实例化4.类与接口之间的关系:implements(实现)类实现接口以后,如果实现了接口中的所有抽象原创 2021-02-18 11:26:09 · 155 阅读 · 1 评论 -
final关键字,抽象类
Final:final修饰类-“太监类”,不能有子类;比如String类final修饰方法:方法不能被重写**fnal修饰变量:**表明此变量一旦赋值不允许被修改,即为一个常量fnal修饰属性:一定要在这些地方给常量赋值 :1 显式初始化 2 代码块初始化 3 构造器初始化fnal修饰局部变量中的形参:1. 调用此方法时,给形参常量赋值 2.一旦赋值,在方法内可以使用形参常量,但 不能给形参常量再赋值...原创 2021-02-15 12:17:33 · 68 阅读 · 1 评论 -
代码块
1.如果需要修饰只能使用static;2.分类:静态代码块、非静态代码块3.静态代码块内部可以声明执行语句随着类的加载而执行由于类的加载只执行一次,所以静态代码块也只执行一次作用:用来输出话类的基本信息:静态属性可以在内部调用类的静态结构:属性,方法。不能调用非静态的属性和方法如果一个类中声明了多变静态代码块,则按照声明的先后顺序执行4.非静态代码块内部可以声明执行语句随着对象的创建而执行创建一个对象,就执行一次用来初始化对象的基本信息:非静态属性可以在内部调用静态结原创 2021-02-15 10:32:23 · 40 阅读 · 0 评论 -
类的加载过程
public class StaticDemo { public static void main(String[] args) { System.out.println(new SDText().y); }}class SDText{ static SDText sd=new SDText(); static int x=3; static int y; public SDText(){ x++; y++原创 2021-02-14 09:52:12 · 66 阅读 · 0 评论 -
设计模式与单例模式
一、设计模式:1.是在大量的事件中总结和理论化之后优选的代码结构,、编程风格、以及解决问题的思考方式。2.经典的设计模式有23种————————————————————————————————————————二、单例模式:1.采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例2.饿汉式:class Bank{//1.私有化构造器 private Bank(){}//2.内部创建当前类的实例 private static Bank bank =new Bank(); pu原创 2021-02-13 16:54:56 · 54 阅读 · 2 评论 -
Scanner关键字
Scanner:从键盘读入数据:具体步骤1.导包:import java.util.Scanner2.Scanner的实例化:Scanner scan(变量名)=new Scanner(System.in);3.调用Scanner类的相关方法,来获取指定类型的变量;Scanner scan=new Scanner(System.in); double num=scan.nextDouble(); System.out.println(num);...原创 2021-02-13 11:11:03 · 211 阅读 · 0 评论 -
Static
static:静态的static:用来修饰结构、属性、方法;代码块,内部类1.static:修饰属性变量的分类:属性 : 静态变量、非静态变量;局部变量 : 方法内,方法的形参,构造器内部,构造器形参,代码块内部.静态变量特点:1.随类的产生而产生,随类的消亡而消亡2.类的多个对象公用一个静态变量,所以静态变量会被覆盖(实例变量-没用static修饰,每个对象都有一套实例变量,赋值不影响其他对象)3.可以在对象声明前通过,类.静态变量赋值.2.static:修饰成员方法:1.随着原创 2021-02-13 09:52:23 · 67 阅读 · 0 评论 -
单元测试方法的使用、包装类
JUnitTest:1.可只针对一个方法或某一块进行测试,具体方法见单元测试具体操作-------------2.百度网盘见day13/06/测试的方法必须满足:A.public void 方法名(空参)------------------------------B.此类必须为public,导入包:import org.junit.Test...原创 2021-02-10 09:40:44 · 104 阅读 · 1 评论 -
Object类
Object类:任何类都是object类的子类类中常用的方法:1.equals:Object类:1.只适用于引用数据类型变量-------------- 2.仍然比较地址值public boolean equals(object obj){return(this==obj)}一般我们比较内容,所以需要重写可直接通过idea/eclipse调用像String/Date/File包装类重写了object类中的equals(),比较两个对象的实体内容是否相等2.==:原创 2021-02-09 12:29:32 · 76 阅读 · 0 评论 -
面向对象的三大特征
封装性: 对属性: 权限修饰符有:public:类内部、同一个包不同包的子类内、一个工程内 protected:类内部、同一个包不同包的子类内 缺省:类内部、同一个包 private:类内部 对方法: 权限修饰符有: 1.static-静态方法 2.final 3.native 4.abstract ———————————————————————————————————————继承性当多个类原创 2021-02-07 22:21:49 · 69 阅读 · 0 评论 -
super,方法的重写,多态性
继承性:当多个类拥有多个相同的属性或者方法,可以利用继承性避免冗余方式类与类之间产生了关系,为多态提供了前提使用方法:class Student extends+类名{这个类名就为提供相同属性或方法的父类,Student类为子类 ..... }注意点:不为了继承而继承,必须具有实际的生活中的关系类与类只能继承一次,一个类只能有一个父类直接父类与间接父类子类能获取直接父类和间接父类...原创 2021-02-04 20:44:30 · 68 阅读 · 0 评论 -
package、import
package:1.每个java类所在的文件的首行,都需要指明当前类所属的包包名的命名规范:xxxx小写import:导入1.导入指定包下的结构·:类或者接口2.import导入的声明再包和类之间3.有多个import导入时i,并列声明即可、4. xxx.*是xxx包下的所有结构5. java.lang包可以省略...原创 2021-02-02 22:19:46 · 45 阅读 · 0 评论 -
This、UML图
This作用:是变量更加见名知意。This用法:对属性、方法public class This1 { public static void main(String[] args) { This2 text =new This2("TOM"); }}class This2{ String name; public This2(String name) { this.name = name;//this表示此变量是属性非局部变量 }原创 2021-02-02 17:02:21 · 97 阅读 · 0 评论 -
构造器
定义:constructor-构造方法(不同于方法)作用:创建对象使用说明:1. 当我们没有显示的声明类中的构造器时,系统会默认提供一个无参的构造器。Person per= new person(); //括号那个就是构造器创建对象:数据类型 变量名 = new + 构造器 2.构造器声明的格式:权限修饰符+类名(形参列表){}public class Constructor1 { public static void main(String[] args){原创 2021-02-01 21:36:08 · 49 阅读 · 0 评论 -
方法
方法的声明:权限修饰符 +返回值类型+方法名(形参);只有静态方法能直接调用public class Rezai{ public static void main(String[] args) { fun(2);//直接调用静态方法(含static) } public static void fun(int n){ System.out.print(n * n); } p原创 2021-01-30 12:13:56 · 114 阅读 · 0 评论 -
类与对象
先声明一个类;class Person{//类第一个单词大写 int age; String name;//类的属性 public void eat(){ String.out.print("zzz");//类的方法 }}public class Persontext{ public static void main(String[] args) { Person per=new Person()//实例化对象 per.name="Tom";//对name的属性赋值原创 2021-01-26 12:33:48 · 58 阅读 · 0 评论 -
数组
数组的定义:动态声明int[] arry=new int[3];整型数组:byte/short/int/long默认值是0;浮点型数组:float/double默认值是0.0布尔类型:boolean默认值是False字符型数组:char默认值是0 或 /u0000(不显示)引用数组类型的数组:数组的元素默认值为nullint[] arry=new int[]{1,2,3};...原创 2021-01-25 11:56:10 · 59 阅读 · 0 评论