自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 反射---

反射 Reflection(反射)是java被视为动态语言的关键,反射机制允许程序正在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法 ​ Class c = Class.forName(“java.lang.Stringf”) 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透

2021-09-05 12:43:45 243

原创 注解---

注解 注解:Annotation Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序作出解释。(这一点和注释comment没什么区别) 可以被其他程序(比如:编译器等)读取 Annotation的格式: 注解是以“@注释名”在代码中存在的,还可以添加一些参数值, ​ 例如:@SuppressWarnings(value=“unchecked”). Annotation在哪里可以使用? 可以附加在p

2021-09-05 12:43:05 111

原创 多线程03

死锁 叙述: 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。 某一个同步块同时拥有"两个以上对象的锁"时,就可能会发生"死锁"的问题 产生死锁的四个必要条件: 互斥条件:一个资源每次只能被一个进程使用 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系 以上列出了死锁

2021-08-11 11:53:36 122

原创 多线程02

多线程 Lambda表达式 概述: λ:希腊字母表排序第十一位的字母,英文名为Lambda 避免匿名内部类定义过多 其实质属于函数式编程的概念 为什么要使用lambda表达式: 避免匿名内部类定义过多 可以让你的代码看起来很简洁 去掉了一堆没有意义的代码,只留下核心的逻辑 函数式接口的定义: 任何接口,如果只包含唯一一个抽象的方法,那么它就是一个函数式接口。 public interface Runnable{ public abstract void run(); } 对于函数式接

2021-08-11 11:52:44 102

原创 多线程01

//代理模式总结: //真实对象 和 代理对象 都要实现同一个接口 //代理对象要代理真实角色 //好处: // 1、代理对象可以做很多真实对象做不了的事情 // 2、真实对象专注做自己的事情 public class StaticProxy { public static void main(String[] args) { You you = new You(); //你要结婚 WeddingCompany wc = new WeddingCompany(you); wc.HappyMarry(); }

2021-08-11 11:50:44 103

原创 网络编程

网络编程 1.1概述 计算机网络: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络编程的目的: 无线电台…传播交流数据 想要到达这个效果需要什么: 如何准确的定位网络上的一台主机 192.168.16.124:端口, 定位到这个计算机上的某个资源 找到了这个主机,如何传输数据呢? javaweb: 网页编程 B/S 网络编程: TCP/IP C/S 1.

2021-08-11 11:49:51 71

原创 特殊操作流

特殊操作流 4.1 操作标准输入输出流 System类中有两个静态的成员变量: public static final InputStream in:标准输入流。通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源 public static final PrintStream out:标准输出流。通常该流对应于显示输出或由主机环境或用户指定的另一个输出目标 自己实现键盘录入数据: InputStream is = System.in; InputStreamReader isr = ne

2021-08-11 11:49:07 135

原创 IO字符流

字符流 由于字节流操作中文不是特别方便,所以Java就提供了字符流 字符流 = 字节流 + 编码表 用字节流复制文本文件时,文本文件也会有中文,但是没有问题。原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文呢? 汉字在存储的时候,无论选择哪种编码存储,第一个字节都是复数 编码表 常见编码表有ASCII码、UTF-8编码、GBK编码 使用什么样的编码,就要使用对应的解码! IDEA默认的就是”UTF-8“ 3.3字符串中的编码解码问题 编码: byte[] getBytes

2021-07-28 18:23:53 98

原创 IO字节流

字节流 2.2字节流写数据 字节流抽象基类 InputStream :这个抽象类是表示字节输入流的所有类的超类 OutputStream :这个抽象类是表示字节输出流所有类的超类 子类名特点 :子类名称都是以其父类名作为子类名的后缀 FileOutputStream:文件输出流用于将数据写入File FileOutputStream(String name):创建文件输出流以指定的名称写入文件 使用字节输出流写数据的步骤: 创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出

2021-07-28 18:23:18 75

原创 File类

File 1.1 File类概述和构造方法 File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。 将来是要通过具体的操作把这个路径的内容转换为具体存在的 方法名 说明 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例 File(String parent,String) 从父路径名

2021-07-28 18:21:14 77

原创 Map集合

Map集合 Map集合的概述: Map是一个接口,不能直接创建对象! Interface Map<k,V> K:键的类型; V:值的类型 将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值 举例:学生的学号和姓名 ​ 001 张三 ​ 002 李四 ​ 003 王五 创建Map集合的对象 采用多态的方式 具体的实现类HashMap

2021-07-28 18:20:43 104

原创 泛型的使用

泛型 泛型简介: 所谓泛型,就是允许在定义类、接口时通过 一个标识 表示类中某个属性的类型或者是某个方法的返回值及参数类型。 这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数,也称为类型实参)。 为什么需要泛型? 在泛型出现之前(JDK1.5之前),对于集合容器类,任何类型的数据都可以添加其中,类型不安全。 此外在读取集合容器中的对象时,会因为数据类型问题而出现类型转换,一方面类型转换比较繁琐,另一方面可能会在运行时因为类型转换问题出现Cla

2021-07-28 18:20:08 98

原创 Collection集合、LinkedList集合

Collection集合 Collection集合的使用步骤: 创建集合对象 Collection<String> c = new ArrayList<>(); 添加元素 c.add("hello"); c.add("world"); c.add("java"); 遍历集合 3.1:通过集合对象获取迭代器对象 Iterator<String> it = c.iterator(); 3.2:通过迭代器对象的hasNext()方法判断是否还有元素 3.3:

2021-07-28 18:19:14 199

原创 System类、Date类、SimpleDateFormat类、Calendar类

System类 System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。 此方法适于计算时间差。 System.out.println(System.currentTimeMillis()*1.0/1000/60/60/24/365 +"年"); //可以用来表示1970年1月1日到现在距离多少年 Date类 Date():使用无参构造器创建的对象可以获取本地当前时间。 Date da

2021-07-28 18:17:47 109

原创 Object类

Object类 toString()方法 toString方法默认打印的是对象的虚拟地址值。 一般对于自定义的类,也想用toString方法比较两个对象的内容是否一致,这时就需要重写toString方法。可以用快捷键:Alt + insert 生成。一般是返回对象的属性等。 Student s1 = new Student("张三",18); System.out.println(s1); 运行结果: @49e4cb85 所以,如果想要输出的是对象的属性,就需要在原来的类里重写toStrin

2021-07-28 18:16:57 72

原创 ArrayList集合

ArrayList集合 集合的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发现改变 集合类有很多,先学习一个ArrayList 在使用ArrayList集合前得先导包:import java.util.ArrayList; ArrayList: 可调整大小的数组实现 :是一种特殊的数据类型,泛型。 常见格式: ArrayList<集合的类型> array = new ArrayList<>(); ArrayList的构造和添加:

2021-07-28 18:16:25 145

原创 异常、及异常处理

异常 异常分为两大类:错误Error 和 异常Exception //异常的体系结构图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmQ7dhcj-1626153420594)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210710135956619.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5AqGnAdP-1626153420598)

2021-07-13 13:17:20 217

原创 抽象类、接口

抽象类 关键字: abstract 抽象类:本质还是个类, extends:单继承 (接口可以多继承)! //抽象方法,只有方法名字,没有方法的实现 注意: 不能new这个抽象类,只能考子类去实现它:约束! 抽象类中可以写普通方法 抽象方法必须在抽象类中 // 抽象的抽象:约束! 接口 声明类的关键字是:class 声明接口的关键字是:interface (继承)实现接口的关键字是:implements // interface 定义接口的关键字,接口都需要有实现类 public

2021-07-13 13:16:48 61

原创 封装、继承、多态、重写、类型转换

封装 属性私有化,get/set 生成set()/get()方法快捷键:Art + Insert 笔记本:Fn + Art +Insert package www.opp.demo02; public class Student { //属性私有 private String name; private int id; private char sex; //提供一些可以操作这个属性的方法 public String getName() {

2021-07-13 13:16:17 115

原创 面向对象及构造器

面向对象 类与对象的创建: package www.opp.demo01; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //类:抽象的,实例化 //类实例化后会返回一个自己的对象 Student Zhangsan = new Student(); Student Lisi = new Student

2021-07-12 11:06:19 61

原创 JAVA的数组及数据工具类

数组 首先必须 声明 数组变量 dataType[] arrayReVar; //首选方法 例如:int[] nums; 或 dataType arrayReVar[]; //效果相同,例如:int nums[]; 注:dataType是数组类型,arrayReVar是数组名 输出的初始化方式 Java语言使用 new 操作符来创建数组 dataType arrayReVar[] = new dataType[arraySize]; 例如: //int num[] = new int[

2021-07-12 11:05:44 58

原创 JAVA的循环

循环 continue 用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着执行下一次是否执行循环的判定。 // 在循环时遇到continue,直接跳回循环开始的地方 break 在循环中遇到break,直接强制跳出循环,不执行循环中剩余语句 标签 //求101-150之前的质数 outer:for(int i=101;i<=150;i++){ for(j=2;j<i/2;j++){ if(i % j == 0){ continue

2021-07-12 11:05:02 50

原创 JAVA的Scanner类

Scanner对象 java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入 基本语法: Scanner s = new Scanner(System.in); 通过Scanner类的next()与nextLine()方法获取输入的字符串 在读取数据前我们一般需要用hasNext()与hasNextLine()判断是否还有输入的数据 next()与nextLine()的比较 next(): 一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的

2021-07-12 11:04:08 249

原创 JAVA的包机制

包机制 为了更好的组织类,java提供了包机制,用于区别类名的命名空间。 包语句的格式为: package pkg1.pkg2.pkg3; 一般利用公司域名倒置作为包名,例如: com.zhang.xxx com.baidu.www 为了能够使用某一个包的成员,我们需要在java程序中明确导入该包。使用"import"完成此功能。 import package1.package2.package3; 导入这个包下的所有类: .* ...

2021-07-12 11:03:17 47

原创 JAVA的常见运算符

运算符 自增,自减 int a = 3; int b = a++; //执行完这行代码后,先给b赋值,a再自增 //a = a + 1; //a = a + 1; int c = ++a; //执行完这行代码前,先自增,再给b赋值 //输出结果:a = 5, b = 3, c = 5 幂运算:2^3=8 (java中没有这种写法),这时候需要借助Math类来操作 // 例如: double x = Math.pow(2,3); 短路运算 int c = 5; boolean d = (c<

2021-07-12 11:02:44 44

原创 Java的基础语法

基础语法 整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x int i1=10; int i2=010; //八进制0 int i3=0x10; //十六进制0x 浮点数拓展 银行业务怎么表示?钱 BigDecimal 数学工具类 float 、double 表示的数字是 有限、离散、接近但不等于 最好完全避免用浮点数进行比较!!! 字符拓展 所有的字符本质还是数字。 编码 Unicode表:0-65536 Excel (范围) \t : 制表符 \n

2021-07-12 11:01:49 45

原创 IDEA的安装与常用快捷键

安装IDEA 选择完路径的下一步,选择对应的电脑的位数,本机64 ✔.java 建议不安装C盘 点击 Create New Project 检查环境jdk有无异常 最左默认选中java,然后Next 创建一个项目名,选择文件路径,然后点击 finish -> ok 创建一个新的项目后,右键src->Java Class 快捷键 psvm: public static void main(String[] args) { } sout: System.out.printl

2021-07-12 11:01:07 76

原创 用Java写 HelloWorld

HelloWorld 随便新建一个文件夹,存放代码 新建一个java文件 文件后缀名为.java Hello.java 编写代码 public class Hello{ public static void main(String[] args){ System.out.print("Hello,World!!!"); } } 编译javac java文件,会生成class文件 运行class文件,java class文件 [外链图片转存失

2021-07-12 10:57:24 307

原创 JDK的卸载与安装

卸载JDK 删除java的安装目录 删除JAVA_HOME 删除path下关于java的目录 在cmd 用 “java -version” 语句检查是否卸载干净 安装JDK 去Oracle官网下载JDK1.8,版本不要太新,新版本可能存在不稳定的现象。 注意下载时候需要选择同意协议,而且需要注册 Oracle 账号 下载对应电脑的版本 记住安装路径 配置环境变量 右键我的电脑 =》属性 =》高级系统设置 =》环境变量 =》系统变量 =》 新建变量名:JAVA_HOME——>变

2021-07-12 10:53:39 68

原创 常用的Dos命令

打开CMD的方式 开始+系统+命令提示符 Win键+R 输入cmd打开控制台 常用的Dos命令 #盘符切换 #查看当前目录下的所有文件 dir #切换目录 cd #返回上一级 cd .. #清理屏幕 cls (clear screen) #退出终端 exit #查看电脑ip ipconfig #打开应用 calc 计算器 mspaint 画图 notepad 记事本 #ping 命令 ping www.baidu.com #文件操作 md 目录名 (创

2021-07-03 15:53:42 34

原创 Markdown学习

Markdown学习 标题: 二级标题 三级标题 字体 Hello,world! Hello,world! Hello,world! Hello,world! 引用 拼搏百日,我要学java! 分割线 图片 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QWLSq4Aa-1625289480964)(C:\Users\ASUS\Desktop\QQ图片20200913182110.jpg)] 超链接 点击跳转到真不卡 列表 A B C A B C

2021-07-03 13:19:23 42

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除