Java
java基础知识学习
爱喝茶的公子
这个作者很懒,什么都没留下…
展开
-
一个简单的Panel面板
package day14; import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent; public class AwtDemo3 { //panel可以看成是一个空间,但是不能单独存在 public static void main(String[] args) { Frame frame = new Frame(); .原创 2021-08-06 22:49:58 · 181 阅读 · 0 评论 -
展示多个frame窗口
package day14; import java.awt.*; public class AwtDemo2 { public static void main(String[] args) { Myframe myframe1 = new Myframe(200, 300, 200, 200, Color.yellow); Myframe myframe2 = new Myframe(400, 300, 200, 200, Color.gr.原创 2021-08-06 22:47:43 · 95 阅读 · 0 评论 -
Java的一个简单frame窗口
package day14; import java.awt.*; public class awtDemo1 { public static void main(String[] args) { Frame frame = new Frame("java图形界面窗口"); //设置可见性 frame.setVisible(true); //设置窗口大小 frame.setSize(400,.原创 2021-08-06 22:45:10 · 221 阅读 · 0 评论 -
注释的基础知识
一、注释代码量很少的时候,我们很容易看懂自己的写的代码,但是当项目结构复杂的时候,就需要用到注释了。 注释不会被执行,它是我们写代码的人看的。 平时写代码养成写注释是一个非常好的习惯,尤其复杂功能通过注释拆分任务,这样写代码会降低难度。二、注释类型1、单行注释:只能注释一行文字,格式://2、多行注释:可以注释一段文字,格式: /* 注释内容*/3、Javadoc文档注释:可以对文档,方法等进行注释,格式:/** 内容*/三、生成Javadoc文档1、使用命令生成Javad..原创 2021-08-05 19:02:57 · 363 阅读 · 0 评论 -
反射基础知识
反射是java中一个非常重要也是一个高级特性,基本上Spring等一系列框架都是基于反射的思想。Java反射机制是在程序运行过程中对于任何一个类都能知道它的所有属性和方法;对于任意一个对象都能知道调用它的任意属性和方法,这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java反射机制注意提供以下几个功能:运行时判断任意一个对象所属的类 运行时构造任意一个类的对象 运行时判断任意一个类所有的成员变量和方法 运行时调用任意一个对象的方法Java中使用java.lang.原创 2021-08-04 12:08:32 · 70 阅读 · 0 评论 -
泛型基础知识
泛型是一种参数化的集合,它限制了添加进集合的类型。泛型的本质是一种参数化类型。多态也可以看成是泛型的机制。一个类继承了父类,那么就能通过它的父类找到对应的子类,但是不能通过其他类找到具体要找的类。泛型的设计就是希望对象或方法的表达能力刚广泛。1、用泛型表示类package day09; //此处的T可以随便写任意标识,常见的有T、E、K、V等形式的参数用于表示泛型public class GenericDemo04<T> { //value这个成员变量的类型为T,原创 2021-08-04 11:53:17 · 115 阅读 · 0 评论 -
Reader&Writer
一、Reader及其子类BufferedReader缓冲区输入流:BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符、数组和行 FileReader文件字符输入流:把文件转换为字符流读入 PipedReader管道输入流:主要用途也是在线程间通讯,不过这个可以用来传输字符 CharArrayReader字符数组输入流:把一个字符数组作为源的输入流的实现 PushbackReader:PushbackReader类运行一个或多个字符被送回输入流二、Writer及其原创 2021-08-04 11:45:50 · 284 阅读 · 0 评论 -
OutputStream&InputStream
一、InputStream及其子类FileInputSteam文件输入流:FileInputSteam类创建一个能从文件读取字节的InputSteam类 FilterInputSteam过滤输入流:其他输入流的包装 DataInputSteam数据输入流,允许应用程序以与机器无关方式从底层输入流中读取基本Java数据类型 PushbakInputSteam推回输入流:缓冲的一个新颖用法是实现推回(pushback),pushback拥有输入流允许字节被读取后返回到流 ObjectInputSte原创 2021-08-04 11:43:06 · 315 阅读 · 0 评论 -
基础IO类和相关方法
IO类最基本的有四个抽象类,InputStream、OutputStream、Reader、Writer。最基本的方法是read()和write()方法,其他都是这四类流的子类,方法也是通过这两类方法衍生而成。大部分的IO源码都是native标注,源码都是C/C++写的。1、InputStreamInputStream是定义了一个Java流式字节输入模式的抽象类。该类的所有方法在出错条件下引发IOException异常,它的主要方法如下: 方法 方法介绍原创 2021-08-04 11:16:14 · 103 阅读 · 0 评论 -
File类
File类是对文件系统中文件以及文件夹进行操作的类,可以通过面向对象的思想操作文件和文件夹。Eg1【创建文件】: 1 package day07; 2 3 4 5 import java.io.File; 6 7 8 9 publicclass Test01 {10 11 publicstatic void main(String[] args) {12 13 File file = new File("F:\\Java学习笔记\\j原创 2021-08-04 11:10:39 · 83 阅读 · 0 评论 -
注解基本知识
Java注解(Annotation)称为元数据,它为我们在代码中添加信息提供了一种形式化的方法。作用在代码中的注解有三个,分别是:@Override:重写标记,一般用在子类继承父类后,标注在重写过后的子类方法上。如果发现其父类,或者引用的接口没有该方法时编译报错。 @Deprecated:这个注解进行代码注释用的比较少,不推荐 @SuppressWarnings:这个注解的起到忽略编译器警告作用元注解有四个,元注解是用来标志注解的注解,分别是:1、@Retention:标识如何存储,是在代原创 2021-08-03 22:25:33 · 99 阅读 · 0 评论 -
抽象类的基本知识
抽象类是一种抽象能力弱于接口的类,在Java中使用abstract关键字表示。如果把接口形容为狗,那抽象类可以理解为毛发是白色、小体的品种,而实现类可以是具体的类比如牧羊、泰迪等。1 package day04; 2 3 4 5 public interface Dog { 6 7 void FurColor(); 8 9 }10 11 12 13 abstract class BlackDog implements Dog {14 15 pu原创 2021-08-03 22:19:28 · 122 阅读 · 0 评论 -
接口的基本知识
一、接口接口相当于对外的一种约定和标准,比如为什么有操作系统,操作系统能屏蔽软件的复杂性和硬件的简单性之间的差异,为软件提供统一的标准。在Java中,接口使用interface关键字来表示,比如我们可以定义这样一个接口:1 package day04;2 3 4 5 public interface Job {6 7 void writeWell();8 9 }比如定义了Job接口,就可以在内部定义需要做的事情。接口的特征如下:Interface接口是一个完原创 2021-08-03 22:12:58 · 89 阅读 · 0 评论 -
this和super
This和super都是Java中的关键字,this表示当前对象,可以调用方法、属性、指向对象本身。super表示父类,可以调用父类的方法、属性、对象。This在Java中使用有三种:第一,指向当前对象 1 package day03; 2 3 4 5 public class Fruit { 6 7 int i = 0; 8 9 10 11 Fruit eatFruit() {12 13 i++;14 15 .原创 2021-08-03 21:46:26 · 126 阅读 · 0 评论 -
关于初始化
一、类的初始化使用new关键字创建一个对象的时候,其实是调用了这个无参对象的构造方法进行的初始化,例如:1 package day03;2 3 4 5 class Demo01 {6 7 public Demo01(){}8 9 }这个无参的构造函数可以隐藏,由JVM自动添加。因为构造函数能确保类的初始化。二、成员初始化Java会尽力保证每个变量在使用前都会获得初始化,初始化的分类如下:1、编译器默认指定的字段初始化,基本数据类型的初始化 类型原创 2021-08-03 21:30:49 · 289 阅读 · 0 评论 -
Java基础语法
1、大小写敏感:Java是对大小写敏感的语言,例如hello与Hello是不同的2、类名:对于所有的类来说,首字母应该大写,例如MyTest类的命名规则遵循驼峰原则,定义如下:驼峰式命名法是电脑程式编写时的一套命名规则,如名字一样CamelCase,用的是混合大小写字母来构成变量和函数的名字。3、包名:包名应该尽量保证小写,例如my.first.pacakage4、方法名:方法名首字母需要小写,后面美国单词字母需要大写,例如myTest()...原创 2021-08-01 20:43:02 · 58 阅读 · 0 评论 -
方法的重载与方法的重写
一、方法的重载方法重载是Java中一个很重要的概念,它是类名的不同表现形式。构造函数其实也是重载的一种,还有一种是方法的重载。 1 package day02; 2 3 4 5 public class Apple { 6 7 int num; 8 9 String color;10 11 public Apple() {12 13 }14 15 16 public Apple(int num, String col原创 2021-08-01 20:39:46 · 129 阅读 · 0 评论 -
Java关键字
关键字 说明 Abstract 抽象类或方法 Assert 用来查找内部程序错误 Boolean 布尔类型 Break 跳出一个switch或循环 Byte 8位整数类型 Case Switch的一个分支 Ca...原创 2021-08-01 20:32:22 · 63 阅读 · 0 评论 -
集合基本知识
1、什么是集合?集合是由若干确定元素所构成的整体。Java标准库自带的java.util包提供了集合类:collection,它是除Map外所有其他集合类的根接口。Java的Java.util包主要提供以下集合:List:有序列表的集合,例如按索引排列的student的list; Set:一种保证没有重复元素的集合,例如所有无重复名称的student的set; Map:一种通过键值(key-value)查找的映射表集合,例如根据student的name查找对应的student的Map。2、为什原创 2021-08-01 20:29:40 · 181 阅读 · 0 评论 -
StringBuilder成员方法
1 package day08; 2 3 public class StringDemo03 { 4 /*成员方法: 5 * public StringBuilder append(任意类型):添加数据并返回对象本身 6 * public StringBuilder reverse():返回相反的字符序列 7 * public int length():返回长度(字符出现的个数) 8 * public String toString():通..原创 2021-08-01 20:20:39 · 84 阅读 · 0 评论 -
String类常见构造方法
1 package day07; 2 3 public class StringDemo01 { 4 /*String类常见构造方法: 5 * public String():创建一个空白字符串对象,不含有任何内容 6 * public String(char[] ch):根据字符数组的内容来创建字符串对象 7 * public String(String origianl):根据传入的字符串内容,来创建字符串对象 8 * String s..原创 2021-08-01 20:21:15 · 161 阅读 · 0 评论 -
关于this关键字
1 package day07; 2 3 public class Students { 4 5 private String name; 6 7 /*this关键字: 8 * 1、this调用本类中的属性,也就是类中的成员变量 9 * 2、this调用本类中的其他方法10 * 3、this调用本类中的其他构造方法,调用的时要防止构造方法的首行*/11 public void setName(String name) {1..原创 2021-07-31 12:21:06 · 52 阅读 · 0 评论 -
快速生成构造器参数
第一步,按住Alt + enter,选择添加构造器参数第二步,选择需要创建构造参数的字段生成结果如下: 1 package day09; 2 3 public class Demo { 4 5 private String name; 6 private int age; 7 8 public Demo(String name, int age) { 9 this.name = name;10 this..原创 2021-07-31 12:16:02 · 308 阅读 · 0 评论 -
快速生成get和set方法
set和get方法的作用:1、灵活性(比如student类有属性name,设置名字后希望不仅显示名字,还按照需求显示如我的名字是:XX,通过set和get就能自定义实现等)2、安全性(比如实现读写权限的控制可以使用private定义属性,再定义一个get方法,但是不定义set方法来实现,表示该属性是只读不写的。反之,只定义set,不定义get则表示该属性是只写不能读的)设置get和set方法具体步骤:第一步,按住alt + enter键,为变量生成get和set方法第二步,分别选择.原创 2021-07-31 10:03:16 · 2811 阅读 · 0 评论 -
基本数据类型参数与引用数据类型参数
一、基本数据类型参数 1 package day05; 2 3 public class MethodDemo06 { 4 /*方法参数传递为基本数据类型:传入方法中的是具体的数值*/ 5 public static void main(String[] args) { 6 int number = 100; 7 System.out.println("调用change方法前:" + number); 8 number .原创 2021-07-31 09:51:07 · 289 阅读 · 0 评论 -
Continue和Break
1 package day03; 2 3 public class ContinueDemo { 4 /*contiune:跳过某次循环体内容的执行。注意使用是基于条件控制,在循环体内使用。*/ 5 public static void main(String[] args) { 6 for (int i = 1; i <= 24; i++) { 7 if(i==5){//跳过5输出1-24的数据 8 ..原创 2021-07-30 08:08:11 · 80 阅读 · 0 评论 -
数组的初始化
一、数组的静态初始化 1 package day04; 2 3 public class ArrayStaticDemo { 4 public static void main(String[] args) { 5 //数组静态初始化:初始化的时候指定每个元素的初始值,由系统决定数组长度 6 //完整格式:数据类型 [] 数组名 = new 数据类型 [] {数据1,数据2,数据3……} 7 int[] arr = new int[原创 2021-07-30 08:03:09 · 168 阅读 · 0 评论 -
数组空指针异常
1 package day04; 2 3 public class ArryExceptionDemo { 4 public static void main(String[] args) { 5 int[] arr =new int[3]; 6 System.out.println(arr[2]); 7 //空指针异常 8 arr = null;//空值 9 System.out.println(..原创 2021-07-30 07:56:09 · 89 阅读 · 0 评论 -
IDE常用快捷键
psvm+enter:快速生成main方法sout+enter:快速生成输出语句alt+1:打开、隐藏工程目录结构alt+4:打开、隐藏控制台ctrl+alt+L:格式化代码alt+enter:代码修正提示ctrl+D:向下复制一行ctrl+X:剪切当前行ctrl+/:快速进行单行注释ctrl+shift+/:快速进行多行注释/**+Enter:快速进行文档注释alt+shift+向上箭头:上移当前行alt+shift+向下箭头:下移当前行shift+F6原创 2021-07-29 08:15:32 · 116 阅读 · 0 评论 -
If选择结构与switch
一、If选择结构格式1:if(关系表达式){ 语句体;}执行流程:1、首先计算表达式的值2、判断表达式的值如果为true将就执行语句体,如果为false不执行语句体3、继续执行后面的语句内容 1 package day03; 2 3 public class IfDemo01 { 4 public static void main(String[] args) { 5 System.out.println("开始"); 6原创 2021-07-28 08:17:22 · 118 阅读 · 0 评论 -
for循环
1 package day03; 2 3 public class ForDemo01 { 4 /* 格式: 5 for(初始化语句;条件判断语句;条件控制语句){ 6 循环体语句;} 7 执行流程: 8 1、执行初始化语句 9 2、执行条件判断语句,如果结果是true继续执行,如果是false循环结束10 3、执行循环体语句11 4、执行条件控制语句12 .原创 2021-07-28 08:11:31 · 65 阅读 · 0 评论 -
Java语言的三大特性
(1) 封装属性可以用来描述同一类事物的特征,方法可以描述同一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性和方法)归到一个类中,以方便使用。优点:第一,实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,可以在需要的时候调用,从而实现了专业的分工。第二,隐藏信息,实现细节。通过访问控制权限可以将不想让客户端程序员看到的信息隐藏起来,比如客户的银行密码需要保密,只能对客户开放权限。(2) 继承就是个性对共性的属性与方法的接受,并加入个性...原创 2021-07-28 08:07:06 · 104 阅读 · 0 评论 -
关系运算符与三元运算符
一、关系运算符 1 package day02; 2 3 public class CompareDemo { 4 public static void main(String[] args) { 5 /* 6 关系运算符(比较运算符) : 7 8 (>) (>=) (<) (<=) (==) (!=) 9 10 */11 System.out.println(原创 2021-07-27 08:05:54 · 119 阅读 · 0 评论 -
逻辑运算符
1 package day02; 2 3 public class Demo2Operator { 4 /*逻辑运算符分类; 5 &:并且,遇到false则false,只有符号两边同时为true,结果才是true; 6 |:或者,遇到true则true,只有符号两边同时为false,结果才为false 7 !:取反 8 ^:异或,相同为false,不同为true*/ 9 public static void main(St..原创 2021-07-27 07:58:32 · 84 阅读 · 0 评论 -
while循环
1 package day03; 2 3 public class WhileDemo01 { 4 /* 5 格式: 6 初始化语句: 7 while(条件判断语句){ 8 循环体语句; 9 条件控制语句;10 }11 执行流程:12 1、执行初始化语句13 2、执行条件判断语句,如果是false循环结束,如果是..原创 2021-07-27 07:56:27 · 68 阅读 · 0 评论 -
Do while
1 package day03; 2 3 public class DoWhileDemo01 { 4 /* 5 格式: 6 初始化语句: 7 do { 8 循环体语句; 9 条件控制语句;10 }11 while(条件判断语句);12 执行流程:13 1、执行初始化语句14 2、执行循环体语句..原创 2021-07-27 07:53:08 · 104 阅读 · 0 评论 -
For和while的区别
1 package day03; 2 3 public class ForWhile { 4 /*for和while的区别: 5 1、条件控制语句所控制的自增变量因为归属for循环的语法结构中, 6 for循环结束以后就不能再被访问到了。 7 2、条件控制语句所控制的自增变量对于while循环来说不归属其语法结构中, 8 在while循环结束后,该变量还可以继续使用。 9 10 * */11 public static voi..原创 2021-07-27 07:50:08 · 189 阅读 · 0 评论 -
算术运算符
一、算术运算符运算符:对常量或变量进行操作的符号。算术运算符:+(加)、-(减)、*(乘)、/(整数相除,只能得到整数如果想要小数的结果,必须加入小数的运算)、%(取模,取余数) 1 package day02; 2 3 public class Caculatedemo01 { 4 public static void main(String[] args){ 5 System.out.println(10 + 2);//12 6原创 2021-07-27 07:47:31 · 550 阅读 · 0 评论 -
基本赋值运算符与自增自减运算符
一、基本赋值运算符package day02;public class DemoOperate1 { /* 基本赋值运算符: =: 将符号右侧的数据赋值给左边 扩展运算符: += -= *= /= %= +=:将符号左右两边的数据做加法运算,结果赋值给左边 */ public static void main(String[] args) { int b= 10; ...原创 2021-07-27 07:41:35 · 275 阅读 · 0 评论 -
数据类型转换
1、隐式转换:将数据类型中取值范围小的数据给取值范围大的类型赋值,可以直接赋值(小的给大的,能隐式直接转换)int a =10;//int, 4个字节double b = a;//double,8个字节System.out.println(b); //10.02、强制转换:将一个数据范围大的数值或者变量赋值给另一个数据范围小的变量。(大的给小的,不能直接给要强制转换)格式:目标数据类型 变量名 = (目标数据类型)值或者变量int a =10;//int, 4个字节byte b原创 2021-07-25 17:04:28 · 675 阅读 · 0 评论