Java学习
文章平均质量分 53
电动蛋黄
这个作者很懒,什么都没留下…
展开
-
Java学习之【注解】
介绍1、注解,或者叫做注释,英文单词是Annotation2、注解Annotation是一种引用数据类型。编译之后也是生成字节码文件3、语法格式[修饰符列表] @interface 注解类型名{}4、注解怎么使用,用在什么地方?(1)默认情况下,可放在任何位置5、jdk5.0之后的功能元注解1、注解的注解称为【元注解】2、常见的:Target,RetentionTarget注解1、用来标注“被标注的注解”可以出现在哪些位置上Retention注解原创 2022-04-03 23:12:31 · 534 阅读 · 0 评论 -
Java学习之【反射机制】
作用1、可以操作字节码文件。(可以读和修改字节码文件)2、通过反射机制可以操作代码片段。相关类重要的类1、java.lang.Class:代表字节码文件,代表一个类2、java.lang.reflect.Method:代表字节码中的方法字节码,代表类中的方法3、java.lang.reflect.Constructor:代表字节码中的构造字节码,代表类中的构造方法4、java.lang.reflect.Field:代表字节码中的属性字节码,代表类中的成员变量(包括静态变量)原创 2022-04-03 12:23:33 · 335 阅读 · 0 评论 -
Java学习之【类加载器】
什么是类加载器1、专门负责加载类的命令/工具【ClassLoader】JDK中自带的3个类加载器1、启动类加载器:rt.jar2、扩展类加载器:ext/*.jar3、应用类加载器:classpathJava类加载器原理1、首先通过“启动类加载器”加载【注意:启动类加载器专门加载rt.jar,rt.jar中都是JDK最核心的类库】2、如果通过“启动类加载器”加载不到的时候,会通过“扩展类加载器”加载。【扩展类加载器专门加载ext\*.jar】3、如果“扩展类加载器”没有加载原创 2022-04-01 21:41:22 · 579 阅读 · 0 评论 -
Java学习之【多线程】
进程和线程什么是进程1、进程是一个应用程序什么是线程1、线程是一个进程中的执行场景/执行单元2、一个进程可以启动多个线程进程和线程的关系1、进程A和进程B的内存不共享2、线程A和线程B【Java中】(1)堆内存和方法区内存共享(2)栈内存独立,一个线程一个栈多线程使用了多线程机制,main方法结束了,只是主线程结束,主栈空了,其他的栈(线程)可能还在压栈弹栈。目的1、提高程序的处理效率实现1、第一种方式// 编写一个类,直接继承java.原创 2022-03-26 20:45:51 · 688 阅读 · 0 评论 -
Java学习之【IO流】
简介1、什么是IO?(1)I:Input(2)O:Output(3)通过IO可以完成硬盘文件的读写2、IO流的分类(1)按照流的方向:(以内存为参照物)a.往内存中去,叫做输入(Input),或者叫读(Read)b.从内存中出来,叫做输出(Output),或者叫写(Write)(2)按照读取数据方式:a.按照字节的方式读取数据,一次读取1个字节byte,等同一次读取8个二进制码,这种流是万能的,什么类型的文件都可以读取。【字节流】b.按照字符的方式读取数据,一次读原创 2022-03-23 21:25:52 · 683 阅读 · 0 评论 -
Java学习之【foreach】
JDK5.0之后推出的新特性:增强for循环【foreach】语法格式:for(元素类型 变量名 : 数组或集合){ System.out.println(变量名);}原创 2022-03-20 19:55:11 · 57 阅读 · 0 评论 -
Java学习之【泛型】
简介1、JDK5.0之后推出的新特性:泛型2、泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的。(运行阶段泛型没用!)3、使用了泛型好处是什么? 第一:集合中存储的元素类型统一了。 第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的“向下转型”!4、泛型的缺点是什么? 导致集合中存储的元素缺乏多样性! 大多数业务中,集合中元素的类型还是统一的。所以这种泛型特性被大家所认可。5、JDK8之后引入了:自动类型推断机制。(又称为钻石表达式),...原创 2022-03-20 18:39:04 · 143 阅读 · 0 评论 -
Java学习之【API】
简介1、API(application program interface):应用编程接口2、阅读联机API文档1、可以从Oracle下载API文档,并保存到本地。2、浏览器中访问(Java 9):http://docs.oracle.com/javase/9/docs/api原创 2022-03-19 22:06:13 · 307 阅读 · 0 评论 -
Java学习之【数字格式化】
数字格式化有哪些# 代表任意数字 , 代表千分位 . 代表小数点 0 代表不够时补0 1、表示形式:###,###.##【表示加入千分位,保留2个小数】DecimalFormat类 DecimalFormat df = new DecimalFormat("###,###,###.0000"); double t = 543123.12; System.out.println(df.forma原创 2022-03-19 22:05:37 · 648 阅读 · 0 评论 -
Java学习之【集合】
集合概述什么是集合1、数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。集合的作用1、集合是一个容器,是一个载体,可以一次容纳多个对象。在实际开发中,假设连接数据库,数据库当中有10条记录,那么假设把这10条记录查询出来,在java程序中会将10条数据封装成10个java对象,然后将10个java对象放到某一个集合当中,将集合传到前端,然后遍历集合,将一个数据一个数据展现出来。理解集合1、集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中原创 2022-03-16 20:08:36 · 544 阅读 · 0 评论 -
Java学习之【枚举】
定义枚举类型enum 枚举类型名{ 枚举值1,枚举值2...}枚举说明1、枚举是一种引用数据类型2、结果只有两种情况的,建议使用布尔类型;结果超过两种并且可以一枚一枚列举出来的,建议使用枚举类型。...原创 2022-03-14 21:48:48 · 117 阅读 · 0 评论 -
Java学习之【异常】
什么是异常?1、执行中不正常的情况Java中异常的存在形式1、 异常在Java中以类的形式存在,每个异常类都能可以创建异常对象。2、当异常发生时,JVM会同时new异常对象。Exception类1、直接子类:编译时异常(ExceptionSubClass)【别名:受检异常、受控异常】:要求程序员在编写程序阶段,必须先让程序员对这些异常进行处理。2、RuntimeException:运行时异常【别名:非受控异常、非受检异常】:程序员可以处理这些异常,也可以不处理。3、编译时异常原创 2022-03-07 22:37:42 · 350 阅读 · 0 评论 -
Java学习之【日期类】
获取当前系统时间 /** * Date类[java.util包下] * * Date():获取系统当前时间 * * Date(int i):表示自1970年1月1日 00:00:00 000起过了i毫秒之后的日期, * 注意:为什么此处输出结果的小时为8,因为这是按照北京时间来计算的, 北京属于东八区原创 2022-03-06 18:31:19 · 306 阅读 · 0 评论 -
Java学习之【包装类】
简介1、Java中为8种数据类型又对应准备了8种包装类型。8种包装类型,属于引用数据类型,父类是Object。基本数据类型 包装类型 父类 byte java.lang.Byte Number short java.lang.Short Number int java.lang.Integer Number long java.lang.Long Number float java.原创 2022-03-06 17:02:52 · 84 阅读 · 0 评论 -
Java学习之【StringBuffer】【StringBuilder】
StringBuffer作用1、进行大量的字符串拼接操作原理1、StringBuffer底层实际是一个byte[ ] 数组【字符串缓冲区】2、往StringBuffer中放字符串,实际上是放到byte数组当中了3、StringBuffer的初始化容量是164、append意思是追加,拼接字符串统一用append()(1)若直接使用‘+’拼接两个字符串,那么如果多次拼接,则会占用方法区内存很大空间(2)如果byte数组满了,会自动进行扩容使用1、如何在实际应用时优化原创 2022-03-06 15:34:27 · 386 阅读 · 0 评论 -
Java学习之【String类】
String类的位置java.lang.StringString类的理解1、String表示字符串类型,属于引用数据类型,不属于基本数据类型。2、在Java中随便用双引号括起来的都是String对象。3、java中规定,双引号括起来的字符串是不可变的,可变的只是引用。4、双引号括起来的字符串都是直接存储在方法区的字符串常量池中。5、创建String对象时,如果是以【String s = "abc"】这种方式创建的,则引用s直接指向方法区内存的字符串常量池中的字符串,如果是以【St原创 2022-03-06 14:17:43 · 216 阅读 · 0 评论 -
Java学习之【数组】
基础知识1、数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object2、数组实际上是一个容器,可以同时容纳多个元素。3、数组可以存储基本数据类型的数据,也可以存储引用数据类型的数据4、数组因为是引用数据类型,所以数组对象存储在堆内存当中5、数组一旦创建,在Java中,其长度不可变。6、数组中如果存储的是Java对象的话,实际上存储的是对象的“引用”【即内存地址】7、java中数组的类型必须统一。【例:int类型数组只能存储int类型数据】8、所有的数组都有leng原创 2022-03-05 20:03:42 · 560 阅读 · 0 评论 -
Java学习之【Object】
如何寻找Object中常用的方法1、去源代码中寻找。【麻烦】2、查阅Java的类库文档。常用的方法Object类1、toString()方法(1)作用:通过调用这个方法,可以将一个java对象转换成字符串表示的形式。(2)建议所有的子类都去重写toString()方法。public String toString(){}(3)输出引用时,会自动调用toString()方法。2、equals()方法(1)作用:判断两个java对象是否相等。【若直接使用“==”原创 2022-03-04 23:18:38 · 254 阅读 · 0 评论 -
Java之【访问控制权限】
种类1、private【私有】2、protected【保护】3、public【公开】4、默认【没有访问权限修饰符】访问权限范围1、private:只能在本类中访问2、public:在任何位置都能访问3、默认:只能在本类、同包下访问4、protected:只能在本类、同包、子类中访问访问权限控制符 本类 同包 子类 任意位置 public √ √ √ √ protected √ √ √ ×原创 2022-03-04 21:46:42 · 161 阅读 · 0 评论 -
Java学习之【package】【import】
为什么要使用package1、package是Java中包机制。2、包机制的作用是为了方便程序的管理。不同功能的类分别存放在不同的包下。(按照功能划分的,不同软件包具有不同的功能)package要怎么用1、package是一个关键字,后面加包名。(1)例如【package com.bjpowernode.javase.chapter17】(2)注意:package只允许出现在java源代码的第一行。包的命名规范(1)一般采用公司域名倒序的方式【公司域名具有全球唯一性】(2原创 2022-03-04 16:01:33 · 707 阅读 · 0 评论 -
Java学习之【接口】
语法结构[修饰符列表] interface 接口名{}基础知识1、接口也是一种引用数据类型。2、接口是完全抽象的,(抽象类是半抽象的)或者也可以说接口是特殊的抽象类。3、接口编译之后,也是一个class字节码文件。4、接口支持多继承。一个接口可以继承多个接口。(1)interface C extends B,C{ }5、接口只包含两部分内容(1)常量:public static final可以省略(2)抽象方法:不能有方法体!!!6、接口中所有元素都是publi原创 2022-03-04 14:10:47 · 139 阅读 · 0 评论 -
Java学习之【final】
基础用法1、final修饰的类无法继承2、final修饰的方法无法覆盖3、final修饰的变量只能赋一次值4、final修饰的引用一旦指向某个对象,则不能再重新指向其他对象,但该引用指向的对象内部的数据是可以修改的。5、final修饰的实例变量必须手动初始化,不能采用系统默认值6、final修饰的实例变量一般和static联合使用,称为常量【static final】...原创 2022-03-04 09:56:38 · 43 阅读 · 0 评论 -
java语言基础部分
标识符什么是标识符可由程序员自行命名,例如类名、接口名、变量名、常量名、方法名....标识符的命名规则1、只能由数字、字母、下划线_和美元符号$组成,不能包含其他符号包括空格。2、不能以数字开头。3、严格区分大小写。4、关键字不能作为标识符。5、理论上无长度限制,但最好不要太长。标识符的命名规范1、最好见名知意2、遵守驼峰命名方式 SystemService UserService CustomerServ...原创 2022-02-26 09:43:01 · 171 阅读 · 0 评论 -
Java学习之【this】【super】
简单说明1、一个【对象】一个【this】。2、【this】是一个变量,是一个引用,保存当前对象的内存地址,是指向自身的。3、【this】存储在堆内存当中对象的内部。使用情况1、【this】只能使用在实例方法中,谁调用这个对象,this就是谁。所以【this】代表的是【当前对象】。2、大部分情况是可以省去的。(1)不能省去的情况:3、【this】不能使用在静态方法中,因为静态方法中不存在当前对象。...原创 2022-03-01 20:04:59 · 575 阅读 · 0 评论 -
Java之【JVM】【JRE】【JDK】
JVM(Java Virtual Machine)组成1、主要包括三块内存空间,分别是【栈内存】、【堆内存】、【方法区内存】。2、【堆内存】和【方法区内存】各有1个,一个线程一个【栈内存】。内存管理1、方法区内存:主要存储【方法代码片段】、【整个类的代码片段】、【静态变量】,在类加载的时候这些代码片段会载入。2、堆内存:主要存储【实例变量】。3、栈内存:主要存储方法体中的【局部变量】。4、三块内存中变化最频繁的是【栈内存】,最先有数据的是【方法区内存】,垃圾回收主要针对的是【原创 2022-02-28 18:59:17 · 53 阅读 · 0 评论 -
Java之【static】
简介1、static翻译为“静态”2、所有static关键字修饰的都是类相关的,类级别的。3、所有static修饰的,都是采用“类名.”的方式访问。4、static修饰的变量:静态变量。5、static修饰的方法:静态方法。静态变量1、静态变量在类加载时初始化,不需要new对象,静态变量的空间就开出来了。2、静态变量存储在方法区内存。3、如果某个类的所有对象的某个属性都一样,那么可以定义为静态变量,节省内存开销。静态方法1、尽量采用【类名.方法名】来使用。【也可以原创 2022-02-27 22:33:47 · 70 阅读 · 0 评论 -
Java学习之【类和对象】
类1、什么是类?(1)类在现实世界中是不存在的,是一个模板,是一个概念,是人类大脑思考抽象的结果。(2)类代表了一类事物。(3)在现实世界当中,对象A与对象B之间具有共同特征,进行抽象总结出一个模板,这个模板被称为类。(4)类描述的是对象的共同特征。【例如身高、体重...】2、一个类主要描述什么信息?(1)一个类主要描述的是【状态】+【动作】。3、语法结构[修饰符列表] class 类名{ //通常采用一个变量的形式完成定义 //方法体之外被定义的变量为原创 2022-02-27 20:19:06 · 217 阅读 · 0 评论 -
Java之【面向对象】【封装】【继承】【多态】
面向对象和面向过程1、区别:(1)面向过程:关注点:实现的具体过程,因果关系【集成显卡的开发思路】a.优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低。b.缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间的【耦合度】非常高,只要其中一环出了问题,整个系统都受到影响,导致最终的软件【扩展力】差。另外,由于没有独立体的概念,所以无法达到组件复用。(2)面向对象:关注点:关注对象【独立体】能完成哪些功...原创 2022-02-27 19:46:14 · 304 阅读 · 0 评论 -
IEDA的使用
(1)ctrl + y :删除光标所在行代码。(2)sout + 回车 :快速输入System.out.println();(3)psvm + 回车 :快速输入 public static void main (String[] args){}在IDEA当中的注释 ctrl + / 注释或者取消注释(单行) ctrl + shift + / 注释或者取消注释(多行) /** 回车,这样会自动生成javadoc注释 alt + 数字键 隐藏或展示IDEA的视图窗原创 2022-02-27 16:18:01 · 408 阅读 · 0 评论 -
选择结构(if-else、switch)
switch语法结构switch(int或String类型的字面值或变量){ case int或String类型的字面值或变量 : java语句; …… break; case int或String类型的字面值或变量 : java语句; …… break; case int或String类型的字面值或变量 : java语句; ……原创 2022-02-26 20:13:25 · 172 阅读 · 0 评论 -
循环结构(for、while、do...while)
for循环语法结构for(初始表达式 ; 布尔表达式 ; 更新表达式){ //需要重复执行的java语句}执行原理1、初始表达式 ; 布尔表达式 ; 更新表达式都不是必须的。【但是两个分号是必须的】2、初始表达式最先执行,并且在整个for循环中只执行一次。3、布尔表达式结果必须是true和false,不能是其他值。4、for的执行过程(1)先执行初始化表达式,并且只执行一次;(2)判断布尔表达式的结果是true还是false:...原创 2022-02-26 20:13:06 · 594 阅读 · 0 评论 -
java学习之【方法】
方法定义及语法结构语法结构:[修饰符列表] 返回值类型 方法名 (形式参数列表) { 方法体;}修饰符列表(1)可选项,不是必须的(2)目前统一写成:public static【以后更新】(3)方法的修饰符列表中有static关键字,调用方法:类名.方法名(实际参数列表)。返回值类型(1)可以是java中任意一种类型,包括基本数据类型和所有的引用数据类型。(2)没有返回值,则返回值类型处写void。(3)只要带有return关键字的语句执行,retu...原创 2022-02-26 20:11:14 · 377 阅读 · 0 评论