JavaSE
文章平均质量分 59
基础
Husky_DQ
小目标年薪百万
展开
-
反射机制学习
绝对路径,返回String:Thread.currentThread().getContextClassLoader().getResource("文件相对路径").getPath();代码执行前,会将所需类加载到JVM中,先加载启动类加载器(父),加载不到时再加载扩展类加载器(母),再加载不到时再加载应用类加载器。java.lang.reflect.Constructor :代表字节码中的构造方法字节码。java.lang.reflect.Method :代表字节码中的方法字节码。原创 2022-11-13 08:21:05 · 106 阅读 · 1 评论 -
线程学习
先启动JVM,JVM就是一个进程,JVM再启动主线程调用main方法,同时启动一个垃圾回收线程负责看护,回收垃圾。在main方法创建Thread对象,传入类的对象,将其封装成Thread对象,再调用start方法。static void yield() 让位方法:暂停当前正在执行的线程对象,并执行其他线程。类继承Thread类,重写run方法,再main方法中创建类的对象,调用start方法。wait:使对象上的线程进入无限期等待,并且立即放弃抓住的锁。线程排队执行,不能并发,这种机制叫线程同步机制。原创 2022-11-09 16:47:02 · 82 阅读 · 1 评论 -
IO学习
所有输出流都实现了java.io.Flushable,都是可刷新的,都有flush方法,在输出流输出完成要flush(),是将管道内未输出的数据强行输出完,刷新的作用就是清空管道,没有flush可能导致丢失数据。FileOutputStream有不同的构造方法,加ture在文章末尾写入,不加ture会清空原文,若是写入时原文件不存在,则会新建文件。可传入字符流的参数,关闭Buffered时会自动关闭节点流,传入的是节点流,外部的是包装流。java.io.Writer 字符输出流。原创 2022-11-03 21:39:49 · 90 阅读 · 1 评论 -
集合类学习
集合类关系继承图:SortedSet:虽然无序不可重复,但是放在该集合的元素自动按照大小排序Hashtable底层式哈希表数据结构,所有方法带有synchronized关键字,因此线程安全,但效率低Hashtable的key和value不允许null集合初始化容量为11自动扩为机制:新容量大小=原容量大小*2+1SortedMap的key存储元素的特点:无序不可重复,放在SortesMap集合key部分元素会自动按照大小进行排序集合都可使用迭代器遍历Iterator。原创 2022-10-31 20:31:32 · 125 阅读 · 1 评论 -
equals与双等号
双等号比较数据时,如果数据是八种基本类型之一,比较值本身,如果比较引用类型则比较内存地址,由于java只存在值传递,基本数据类型的值是值本身,引用类型的值是内存地址,本质上还是比较值。由源码可知,equals底层使用双等号返回结果,若不重写,equals等价于双等号。原创 2022-10-28 04:37:10 · 370 阅读 · 0 评论 -
Compareble接口
测试类:public class studentTest { public static void main(String[] args) { Student s1=new Student(); s1.setUserName("张三"); s1.setAge(100); Student s2=new Student(); s2.setUserName("李四"); ...原创 2021-12-08 23:05:46 · 249 阅读 · 1 评论 -
内部类
内部类public class Application { public static void main(String[] args) { Outer outer = new Outer(); outer.out(); Outer.Inner inner= outer.new Inner(); outer.getID(); inner.in(); inner.getID(); fr...原创 2021-11-30 13:01:46 · 52 阅读 · 1 评论 -
异常
异常什么是异常:程序运行过程中不期而至的各种状况:文件找不到,网络连接失败,非法参数异常发生在程序运行期间,它影响了正常的程序执行流程检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的,例如打开一个不存在的文件,一个异常就产生了,这些异常在编译时不能被简单忽略运行时异常:运行时异常是可能被程序员避免的异常,与检查性异常相反,运行时异常可以在编译时被忽略错误:错误不是异常,而是脱离程序员控制的问题,错误在代码中通常被忽略,例如,但栈溢出时,一原创 2021-11-30 13:00:20 · 66 阅读 · 1 评论 -
接口interface
接口:普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!无法写方法~~专业的约束,约束和实现分类:面向接口编程 接口就是规范,定义一组规则 接口的本质是契约 oo的精髓,是对对象的抽象,最能体现这一点的是接口 //用intetface修饰符修饰,接口public interface test { //定义属性,默认public static final:常量 int age=99; void ad...原创 2021-11-30 12:59:28 · 211 阅读 · 1 评论 -
抽象类
抽象类:使用abstract修饰符修饰的类//用abstract修饰符修饰,抽象类,抽象类是类,可以使用extends,只有单继承,JAVA没有多继承,但是接口可以多继承public abstract class test { //抽象方法,只有方法名,没有方法的实现 public abstract void dosomething(); public abstract void niuma(); public static void main(String[] ...原创 2021-11-30 12:58:01 · 56 阅读 · 1 评论 -
static
staticpackage Husky.JAVA.method;public class b10 { public static void eat(){ System.out.println("eat"); // run(); 静态方法不能直接调用非静态方法,因为静态随类生成,最开始的 } public void run(){ System.out.pri...原创 2021-11-30 12:57:07 · 35 阅读 · 1 评论 -
instanceof
instanceof Object s1=new Chinese(); System.out.println(s1 instanceof People); System.out.println(s1 instanceof Chinese); System.out.println(s1 instanceof Object); System.out.println(s1 instanceof Americas); System.out....原创 2021-11-30 12:56:22 · 39 阅读 · 1 评论 -
多态
多态:即同一方法可以根据发送对象的不同采用多种不同的行为方式一个对象的类型是确定的,但可以指向对象的引用的类型有很多多态存在的条件 有继承关系 子类重写父类的方法 父类引用指向子类对象 public static void main(String[] args) { //一个对象的实际类型是确定的 //可以指向的引用类型不确定,父类的引用指向子类 Chinese s1 = new Chinese(...原创 2021-11-30 12:55:20 · 49 阅读 · 1 评论 -
this与super
super super调用父类的构造方法,必须在构造方法的第一个 super必须只能出现在子类或者子类的构造方法中 super和this不能同时调用构造方法 this代表本身原创 2021-11-30 12:54:23 · 35 阅读 · 1 评论 -
面向对象基础
概念:共同特性的方法和数学变成类描述复杂的事物,为了从宏观上把握,需要用面向对象的思路分析整个系统,但是,具体到微观操作,仍需要要面向过程的思路处理面向对象编程:以类的方式组织代码,以对象组织(封装)数据三大特性: 封装 继承 多态 从认识论角度考虑,先有对象后有类,对象是具体事物,类是抽象的,对对象的抽象从代码运行角度考虑,先有类后有对象,类是对象的模板//学生类public class Student { //属性 .原创 2021-11-30 12:52:30 · 33 阅读 · 1 评论 -
多维数组
多维数组可看成数组的数组二维数组int a[][]=new int[2][5];以上二维数组可看成两行五列的数组package Husky.JAVA.array;//二维数组public class Demo04 { public static void main(String[] args) { int[][] a={{4,2},{3,-1},{1,2,3},{-87,127}}; primary(a[0]); //利...原创 2021-11-30 12:50:43 · 30 阅读 · 1 评论 -
数组的基础
定义: 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个元素,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 声明与创建首先声明数组,才能使用,语法:dataType[] arrayRefVar;//首选//或dataType arrayRefVar[];Java使用new操作符创建数组,语法dataType[] arrayRefVar=new dataType[arraySize];原创 2021-11-03 21:02:18 · 39 阅读 · 1 评论 -
方法的重载
规则: 方法名必须相同 参数列表必须不同(个数或类型或参数排列顺序不同) 方法的返回值可相同可不同 仅仅返回值不同不足以成为方法的重载 public static void main(String[] args) { System.out.println(add(1,2)); System.out.println(add(1l,2l)); System.out.println(add(1,2,3)); System.out.println(add(1,2,3,4));原创 2021-11-03 21:00:13 · 44 阅读 · 1 评论 -
递归
递归就是调用本身 需要有边界条件 前阶段 返回阶段 占用大量内存 递归结构包括两个部分: 递归头:什么时候不调用自身方法,如果没有头,将陷入死循环 递归体:什么时候需要调用自身方法 低配计算器import java.lang.String;import java.nio.charset.StandardCharsets;import java.util.Scanner;//计算器public class Demo08 { pu.原创 2021-11-03 21:00:32 · 68 阅读 · 1 评论 -
增强for与continue,break
增强型for循环Java5引入了一种主要用于数组和集合的增强型for循环增强型for循环语法格式for(声明语句:表达式){//代码句子}声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等表达式:表达式是要访问的数组名,或者是返回值为数组的方法例如:public static void mian(String[] args){int[] numbers={10,20,30,40,50};//定义一个原创 2021-11-03 20:58:21 · 411 阅读 · 1 评论 -
循环
while循环语法:while (布尔表达式){//循环内容}只要布尔表达式为ture,循环就会一直执行下去需要用一个让表达式失效的方式来结束循环少部分需要循环一直执行,比如服务器的请求响应监听等循环条件一直为ture就会造成无限循环【死循环】,正常编程中应尽量避免死循环,会影响程序性能或造成程序卡死崩溃计算1+2+3+......+100 public static void main(String[] args) { int i=1; ...原创 2021-10-20 20:06:38 · 69 阅读 · 1 评论 -
程序结构
顺序结构public static void main(String[] args){System.out.println("");System.out.println("");System.out.println("");System.out.println("");}选择结构if单选择结构语法:if(布尔表达式){//布尔表达式为true将执行的语句}import java.util.Scanner;public class if循环 { .原创 2021-10-19 21:11:14 · 45 阅读 · 1 评论 -
scanner用法
Java流程控制java.util.Scanner是java5的新特征,是一个工具包,可以通过Scanner类获取用户的输入基本语法:Scanner s=new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要用hasNext()与hasNextLine()判断是否还有输入的数据next(): 一定要读取到有效字符才可以结束输入 对输入有效字符之前遇到的空白,next()方法会自动将其原创 2021-10-18 21:42:36 · 120 阅读 · 1 评论 -
基本运算符
java语言支持以下运算符: 算术运算符:+,-,*,/,%,++,-- 赋值运算符= 关系运算符:<,>,>=,<=,==,!= 逻辑运算符:&&,||,! 位运算符:&,|,^,~,>>,<<,>>> 条件运算符?: 扩展赋值运算符:+=,-=,*=,/= int a=5int b=a++;int c=++a;System.out.p原创 2021-10-16 13:48:08 · 55 阅读 · 1 评论 -
变量基础知识
变量 每个变量都由类型,可以是基本类型,也可以是引用类型 变量名必须是合法的标识符 变量声明必须是一条完整的语句,因此每一个声明必须以分号结束 变量作业域类变量实例变量局部变量public class Demo1{ static int allClicks=0;//类变量 String str="Hello world";//实例变量 public void method()原创 2021-10-16 13:47:09 · 64 阅读 · 1 评论 -
Java基础
注释 注释不会被执行 单行注释: //文字 多行注释: /*文字 */ 文档注释: /** 文字 */原创 2021-10-10 20:36:37 · 52 阅读 · 1 评论 -
Hello,world
Hello,world 创建一个java文件(后缀为.java) 用编辑器打开(推荐notepad++) 编辑代码 public class Hello{ public static void main(String[] args){ System.out.print("Hello,World"); }}保存 4.在代码文件后在控制台输入javac 文件名.java进行编译 5.输入Java 文件名运行...原创 2021-10-09 21:14:06 · 42 阅读 · 1 评论 -
类型转化--基础
由于JAVA是强类型语言,进行某些运算时要类型转化低--------------------------------------------------------------->高byte,short,char——>int——>long——>fioat——>doubleint i=128;byte b=(byte)i;//将i从int转化到byte,但要避免内存溢出//int转到byte,高到低,不需要转化int i=128;double b=i原创 2021-10-11 22:04:03 · 80 阅读 · 1 评论