
javaSE
文章平均质量分 76
靠谱的大钊
没啥写, 就这样
展开
-
反射-详细概念
反射什么是反射机制:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对与任意一个对象,都能够调用他的任意一个方法和属性,这种动态的获取的信息以及动态调用对象的方法的功能成为java反射机制,class一旦class文件被加载到内存,就会为其创建一个Class对象。任何类被使用时都会创建一个Class对象。Class类是Java反射机制的基础,通过Class类,可以得到一个类的基本信息。静态编译和动态编译静态编译: 在编译时确定类型,绑定对象动态编译:原创 2021-03-16 10:18:11 · 200 阅读 · 0 评论 -
Java30- 内部类
内部类内部类一般来说分为四种:成员内部类静态内部类局部内部类匿名内部类文章目录内部类成员内部类静态内部类局部内部类匿名内部类内部类的特点内部类的意义成员内部类成员内部类–就是位于外部类成员位置的类特点: 可以使用外部类中所有的成员变量和成员方法(包括private的)class Outer { private int age = 20; class Inner { public void show() {原创 2021-01-02 18:58:02 · 162 阅读 · 0 评论 -
Java29- 反射
反射反射就是根据字节码文件,反射类的信息,字段,方法,构造方法等类的内容,根据字节码文件创建对象,调用方法的技术文章目录反射反射的基础,是class的对象反射类的信息创建Class对象反射类的信息修饰类 `Modifiers:修饰器`类名父名接口通过反射技术访问字段创建Class对象,反射name字段通过反射技术创建对象(实例),默认调用类的无参构造设置字段的值返回字段的值访问私有字段 age通过反射技术调用方法代码Person类创建Class对象的方式反射类的信息通过反射技术访问字段通过反射技术调原创 2020-12-25 13:09:11 · 341 阅读 · 0 评论 -
Java28- 线程同步[继承Thread,实现Runnable]
线程同步并发与并行并行:多个CPU同时执行多个任务, 比如: 多个人同时做不同的事并发: 一个CPU(采用时间片)同时执行多个任务,比如: 秒杀,多个人做同一件事线程同步:多个线程同时读写同一份共享资源,可能会引起从图,所以引入线程"同步"机制,即各线程要有先来后到同步就是排队+锁:几个线程之间要排队,一个个对共享资源操作,而不是同时进行操作为了保证数据在方法中被访问的正确性,在访问时加入锁机制模拟卖票两个窗口分别售票,票数为10张分别使用继承Thread和实现Runna原创 2020-12-16 08:22:20 · 731 阅读 · 1 评论 -
java27-线程与进程
java-线程文章目录java-线程程序,进程,线程线程和进程的关系多线程的概念多线程的使用:多线程的好处多线程的缺点创建线程:继承Thread类的方式**thead类**test类实现Runnable接口的方式继承Thread和实现Runnable的联系与区别实现Runningable的好处:Thread类中方法Thread类构造方法方法:Thread常用方法:调度策略:java的调度方法:Thread类有如下3个静态常量来表示优先级线程的生命周期Java中的线程分为两类:案例案例二:程序,进程,线程原创 2020-12-16 00:50:05 · 601 阅读 · 0 评论 -
javaSE26-- IO流--Print流,对象输入输出流,对象序列化,对象反序列化的过程
Print流print打印流:只做输出没有输入打印分为字节打印流和字符打印流目录Print流PrintWriter: 字符打印流对象输入输出流**作用**:**用法**:**案例一**:对象序列化案例二**一个类声明****对象的输出流**对象的输入流PrintWriter: 字符打印流print流方法可以打印各种类型数据单向输出(从服务器,向客户端,浏览器打印输出网页内容)在开发时, 一般调用e.printStackTrace()把异常信息打印到屏幕上方便程序员调试在部署后原创 2020-12-05 23:08:51 · 480 阅读 · 0 评论 -
javaSE25-- IO流--字符缓冲流BufferedReader/BufferedWriter
字符缓冲流目录字符缓冲流从键盘上输入文本,把这些文本保存到文件中使用BufferedWriter保存文本到文件使用BufferedReader读取文本文件内容BufferedReader/BufferedWriter也是一种处理流,包装流 bw.flush(); //清空缓冲区,把数据保存到文件中 bw.close();br.readLine();从缓冲字符流中读取一行,读到文件末尾返回null从键盘上输入文本,把这些文本保存到文件中 private static voi原创 2020-12-05 21:16:48 · 219 阅读 · 0 评论 -
javaSE24-- IO流--字符FileReader/FileWriter
目录字符FileReader/FileWriterFileReader建立流通道new FileReader读取文本文件内容,一次读取一个字符数组, 异常处理, 自动关闭FileWriterInputStreamReader/OutputStreamWriter转换流读写字符FileReader/FileWriter以字符为单位读写文件内容, 只能读写纯文本文件, 要求文本文件的编码格式要与当前环境的编码格式兼容FileReader建立流通道new FileReaderFileReader fr原创 2020-12-05 21:13:54 · 346 阅读 · 0 评论 -
javaSE23-- IO流--字节流中常用类FileInputStream/FileOutputStream
目录字节流中常用类FileInputStream/FileOutputStream读写文件的步骤FileInputStream以字节为单位读取文件的内容以字节为单位读取文件的内容, 循环读取异常处理一次读取一个字节, 手动关闭流, 异常处理从文件中读取字节保存到字节数组中, 异常处理, 自动 关闭流FileOutputStream以字节为单位把数据保存到文件中文件的复制字节流中常用类FileInputStream/FileOutputStream字节输入流 FileInputStream字节输出流原创 2020-12-05 21:07:50 · 233 阅读 · 0 评论 -
javaSE22-- IO流--流分类
输入及输出的概念目录输入及输出的概念流的分类:输入流/输出流,字节流/字符流InputStream和OutPutStream的子类都是字节流Reader和Writer的子类都是字符流节点流与处理流**根据封装类型不同流又分为**节点流:处理流。输入输出(I/O)把电脑硬盘上的数据读到程序中,称为输入,既input,进行数据read操作从程序往外部设备写数据,成为输出,即output,进行数据的write操作流是有起点和终点的有序字节序列流的分类:输入流/输出流,按照数据的传输方向分为:原创 2020-12-05 21:05:12 · 281 阅读 · 0 评论 -
javaSE21-- IO流--File类
IO流File类是java.io包中很重要的一个类;File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录;File对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等;File对象无法操作文件的具体数据,既不能直接对文件进行读写/操作//在当前目录下创建一个与aaa.txt文件名相关联的文件对象File f1 = new File("aaa.txt");//指明详细的路径以及文件名,请注意双斜线或用反斜杠File f原创 2020-12-05 01:22:36 · 476 阅读 · 0 评论 -
javaSE20-- Collection集合概述
Collection集合概述最强Java集合合集目录Collection集合概述Collection的常用操作List集合ArrayList与VectorLinkedListset**HashSet****位置为什么时无序的**为什么使用 hashcode向hashset添加元素时 如何确定重复元素TreeSet**自然排序要进行一下操作**:Compara比较器排序LinkedHashSet按插入的顺序进行输MaphashMap特点基本操作hashmap工作原理遍历一:遍历三:HashTable:Pr原创 2020-11-28 20:41:49 · 289 阅读 · 0 评论 -
常用的字符转换
常用的字符转换int–>Stringint num = 123;String str = "" + num;//字符串与基本类型连接,会先把基本类型转换为字符串再连接String str1 = String.valueOf(num);//参数的字符串表示形式。String str2 = Integer.toString(num);//返回一个表示指定整数的 String 对象。Integer -->StringInteger integer = new Integer(123原创 2020-11-28 00:10:49 · 596 阅读 · 2 评论 -
哈希表大总结
哈希表总结哈希表记录的存储位置和它的关键字之间建立一确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。因而查找时,只需根据这个对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此不需要进行比较便可直接取得所查记录。在此,称这个对应关系f为哈希函数,按这个思想建立的表为哈希表(又称为杂凑法或散列表。哈希表不可避免冲突(collision)现象:对不同的关键字可能得到同一哈希地址 即key1≠key2,而hash(key1)=ha原创 2020-11-26 18:32:09 · 1903 阅读 · 0 评论 -
javaSE19-- 异常
异常目录异常异常可分类:处理方式:常见的异常案例异常体系结构try-catchtry catch 嵌套一个try可以对应及格catchcatch (类型 a)catch中没有对应的异常类型getMessage()parintStackTracethrows自定义异常使用总结throwsthrow自定义异常运行时,由于各种原因导致的不能正常运行,使用java语言异常处理机制,控制的,后面代码可以正常运行的广义 所有的异常侠义 运行时异常,可以处理的异常可分类:根据在程序中执行所发正的异常可分类原创 2020-11-16 14:44:55 · 516 阅读 · 0 评论 -
javaSE19-- Date类Calendar类SimpleDateFormat类math类BigInteger-BigDecimal-RoundingMode
目录Date类Date类**Calendar类**SimpleDateFormat类math类Math.random()BigInteger类型BigDecimal类型RoundingModeDate类Date类使用Date类代表当前系统时间Date d = new Date();Date d = new Date(long d);Date d = new Date();System.out.println(d);Fri Nov 13 13:59:48 CST 2020获得当前日期距原创 2020-11-13 14:36:36 · 262 阅读 · 0 评论 -
javaSE18-- Arrays类
Arrays类java.util.Arrays类用于操作数组工具类,里面定义了常见操作数组的静态方法equals比较两个非同一数组是否相等,而数组本身的equals判断另一个数组是否它本身。声明:public static boolean equals(type[]a,type[]a2)参数的类型可以是原生数据类型和引用类型的任意一种类型。返回:如果两个相等,则返回true,否则返回falseint[] a={1,2,3};int[] b={1,2,3};System.out.pri原创 2020-11-08 15:43:08 · 269 阅读 · 0 评论 -
javaSE17-- StringBuffer,StringBuilder
StringBuffer,StringBuilder概述String 值不可变 常量StringBuffer 值可变 多线程安全 效率低StringBuilder 值可变 多线程不安全 效率高由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。StringBuffer ,StringBuilder上的主要操作是 append原创 2020-11-07 18:38:38 · 242 阅读 · 0 评论 -
javaSE16-- 正则表达式
正则表达式正则表达式,即规则表达式模式匹配的语法,用特定的符号,表示某种规则,取匹配某个字符串如果字符串与规则相匹配,返回true,否则返回falses.matches("\\d");//匹配\\d 匹配数字[4-9] 控制区间[4567] 只能匹配出现数字的一次X? 一次或者一次也没有X* 零次或者多次X+ 一次或者多次[即不能为空]//表示次数X{n] 恰好n次X{n,} 至少n次x{n,m} 至少n次,最多m次\\d 匹配数字 X 零次原创 2020-11-07 18:15:28 · 291 阅读 · 0 评论 -
javaSE15-- 基本数据类型包装类
基本数据类型包装类Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类.为了编程方便包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。在java中, 系统为每一个基本类型都提供 了 一个对应的包装类型基本数据类型包装类byteByteshor原创 2020-11-05 23:08:20 · 290 阅读 · 0 评论 -
01背包问题穷举法,暴力破解法(穷举法)递归
穷举法解决01背包利用暴力破解法(穷举法)问题描述:给定n个重量为{w1, w2, … ,wn}、价值为{v1, v2, … ,vn}的物品和一个容量为C的背包,求这些物品中的一个最有价值的子集,且要能够装到背包中。包的总容量物品编号价值重量14$12kg22$2kg32$1kg41$1kg510$4kg思路:利用递归进行遍历求出各个的可能性将遍历出的结果存入int[] back = new int[N],进行缓存没存入一原创 2020-11-05 18:07:16 · 4950 阅读 · 1 评论 -
javaSE14-- String类
String类java.lang.String类表示字符串的类创建方式直接赋值字符串字面量 String s1 = "hello";无参构造 String()String s2 = new String(); System.out.println( s2 == null ); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在堆中创建一个String对象object,第一种特点:JVM会自动根据栈中数原创 2020-11-05 16:38:10 · 837 阅读 · 0 评论 -
javaSE13-- API_常用类--默认继承Object--toString()--==与equals()[详解]
API_常用类API应用程序编程接口API文档是对Java预定定义的类或接口功能和方法功能的说明文档,目的是提供给开发人员进行使用帮助说明默认继承Object,Java中所有类没有显示的继承类,默认继承Object,因为要实现多态(Object类型,可以表示任何类型)public class ObjectDemo extends Object{ public static void main(String[] args) { ObjectDemo obj = new原创 2020-11-02 21:56:28 · 338 阅读 · 0 评论 -
javaSE12--二维数组
二维数组二维数组的定义:数组的数组—二维数组的每一个元素是一个一维数组例如:int [][]a = {{1,2,3},{1,2,3},{1,2,3}};二维数组的声明:int [][] a;int a2[][];数组的创建int[][] a = new int[][]{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}; int[][] b = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}; //定义了一个整型的二维数组,这个二维数组有三个一维数组,原创 2020-11-02 19:28:57 · 191 阅读 · 1 评论 -
javaSE11--一维数组
数组概念:相同数据类型元素的集合,多个数据引用数据类型,对象,数组可以存储基本数据类型,也可以储存引用数据类型**是一种线性数据结构,**在内存空间是连续的作用:储存多个数据,并且类型相同声明方式:int[] a; || 数据类型[] 数组名字 || 建议使用第一种数据类型数组中的数据类型int a[]; || 数据类型 数组名字[]Java数组在创建时必须给给定的长度,一旦定义就不可修改在内存空间中是一个连续的空间 为其中每个存储空间初始化值原创 2020-10-31 00:44:10 · 206 阅读 · 0 评论 -
javaSE10--final关键字-抽象类-接口-抽象类接口区别
final关键字final用于声明属性,方法和类属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期不能修改方法:子类不能被覆盖类:不能被定义为抽象类或者接口,不可被继承.final属性赋值:–在声明时同时赋值,往往与static一起使用final static int Num = 10;package com.nie.day5.demo06;public class Filal { //用于声明方法和类 //final修饰常量,常量值不能变,利用static原创 2020-10-29 00:30:44 · 304 阅读 · 0 评论 -
Java中this和super的用法总结
Java中this和super的用法总结thisthis是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。this的用法在java中大体可以分为3种:1.普通的直接引用这种就不用讲了,this相当于是指向当前对象本身。2.形参与成员名字重名,用this来区分:class Person { private int age = 10; public Person(){ System.out.println("初始化年龄:"+age);} publ转载 2020-10-25 00:23:25 · 157 阅读 · 0 评论 -
javaSE09基础-面向对象三大特征
面向对象特征封装封装概念:封装,将类的某些信息隐藏在类内部,不允许外部访问,而且时通过该类提供的方法来实现对隐藏信息的操作和访问优点:隐藏类的实现细节类内部的结构可以自由的修改可以对成员精确的控制只能通过规定方法访问良好的封装能够减少耦合具体表现属性使用private权限方法使用public权限public class Person { private String name; private int age;}将 name 和 age 属性设置为原创 2020-10-25 00:14:24 · 371 阅读 · 0 评论 -
javaSE08基础-包-权限修饰符
包概念:文件夹,管理类包的作用:避免类重名,全类名=包名+类名,按照不同的功能管理类import导入外部包,不能导入两个类名相同的类如果要用两个相同的类名,则用全名import java.util.Date;/** * import 导入外部包, * 不能导入两个类名相同的类 * 如果要用两个相同的类名,则用全名 */public class Test { public static void main(String[] args) { Date b =原创 2020-10-23 16:00:12 · 366 阅读 · 1 评论 -
javaSE06基础-对象与引用-基本类型和引用类型的区别
面向对象2对象与引用引用对象:Java语言中除基本数据类型之外的变量类型都称为引用类型.java中的对象是通过引用对其操作的例如:我们有一个自定义类为Car(汽车类)class Car{ String color; String name; String model;}Car car= new Car();e通常把这条语句的动作称之为创建一个对象,其实,它包含了三个动作。解释右边的" new Car()" 是以car类为模板,调用car类的构造函数,在对空间里创建原创 2020-10-21 23:01:08 · 1168 阅读 · 1 评论 -
javaSE07基础-static 关键字
static 关键字static被称为静态,可以用来修饰类的属性,方法,代码块,内部类.修饰的成员,被所有对象所共享不创建对象,直接被调用优先于对象存在静态优先于非静态类加载时执行1.可直接通过类名访问 也可以通过对象名访问static String school如过不是静态,每一个对象都要复制一份变量,浪费空间,当所有对象的某一个值都相同时,加一个static使其为静态,在内存中只有一份,所有对象共享package com.nie.day2.Demo1;public clas原创 2020-10-21 22:42:11 · 381 阅读 · 1 评论 -
javaSE05基础-面向对象
java面向对象目录java面向对象面向过程(pop)面向对象(oop)类什么是类类的结构类的定义对象创建和使用**成员变量****局部变量:**一个类可以包含以下类型方法:构造方法类方法方法的重载面向过程(pop)分析出解决问题所需的步骤,然后一步一步实现注重解决步骤,例如::关冰箱问题:1.打开冰箱门 2.装大象 3.关闭冰箱门面向对象(oop)以分类的方式进行思考和解决问题,宏观,整体上的设计.例如::关冰箱问题:关冰箱需要冰箱,冰箱有门,人操作冰箱,门还分关门开门等等因此设计原创 2020-10-19 23:04:24 · 419 阅读 · 0 评论 -
javaSE04基础-控制台输入-控制语句-循环-break & continue-循环嵌套-结束外层循环
控制台输入Scanner a = new Scanner(System.in)[ System.in ]标准输入串,得用户输入next()方法用以 输入的字符;nextInt()将取得的输入为整数类型;nextFloat()转换成浮点型;nextBoolean()转 换成布尔型。Scanner a= new Scanner(System.in);System.out.println("姓名");String name1=a.next();System.out.原创 2020-10-16 18:05:13 · 304 阅读 · 0 评论 -
javaSE03基础-数据类型-运算符
Java变量目录Java变量一级目录二级目录三级目录**Java数据类型**按数据类型**变量分类**整数类型浮点类型逻辑型boolean(布尔)字符型charASCII 码Unicode 编码基本数据类型转换java运算符算术运算符+正数 加法 字符串连接-负数 减法\* % 数值与数值(char)++自增1 --自减1比较运算符逻辑运算符与运算&& . & 有0即为零与运算|| . | 有0即为零异或( ^ ):赋值运算符条件运算符位运算练习一级目录二级目录原创 2020-10-11 16:24:44 · 735 阅读 · 0 评论 -
javaSE02基础语法
java基础语法IDE的使用IDE(Integrated Development Environment )集成开发环境包含编辑器,编译器,调试图形界面IntelliJ IDEA 捷克的一家公司 收费的Eclipse IBM公司开发的 现在捐献给eclipse基金会注释对程序功能的说明,以某种特定符号作为标记,程序在运行过程中不会执行注释.Java语言有三种注释方式:// 用于单行注释, 快捷键ctrl+//*用于多行注释,快捷键ctrl+shift+/ c原创 2020-10-10 00:48:16 · 777 阅读 · 0 评论 -
javaSE01概述与第一个程序
java概述与第一个程序为什么是java市场需求高java语言用途广:服务器程序,Android应用,软件工具,嵌入式领域,大数据技术Java语言发展史1991年SUN公司詹姆斯•高斯林提出要求:语言生成代码紧凑,在不同的平台上运行**(跨平台)**1995年正式确立,2004年9月Java1.5发布,2009年SUN公司被Oracle公司(甲骨文)收购Java语言的特点开源简单,高效面向对象平台无关性交互式特性多线程机制动态的内存管理原创 2020-10-09 15:50:04 · 1166 阅读 · 0 评论