![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
javaSe
javaSe基础用法
qq_44949002
这个作者很懒,什么都没留下…
展开
-
35.自动生成实体类,mapper
自动生成原创 2022-06-14 17:14:15 · 253 阅读 · 1 评论 -
1: 序列化
一:解答:当需要将数据存入文件或者通过网络发送出去时,需将数据对象转化为字节流,即对数据序列化。数据序列化本质上是将JVM中链式存储的对象转化成连续存储的字节数组,这将极大的减少数据大小。对于每一个序列化的Java对象来说都有唯一的序列化 UID,这样可以保证在新的 JVM 中恢复对象即反序列化后同一个对象只会存在一份,这减少了内存的占用,同时也解决了对象之间依赖的问题。当需要将数据存入文件或者通过网络发送出去时,需将数据对象转化为字节流,即对数据序列化。补充序列化技术是如何发展的?考原创 2022-03-09 16:47:17 · 241 阅读 · 0 评论 -
34. java8新特性
1.函数式编程的优点:省内存(少创建好多类和对象);代码简洁.缺点:可读性较差.eg:public static void main(String[] args) {/1.传统java代码///声明集合TreeSet tset=new TreeSet<>(new Comparator() {@Overridepublic int compare(String o1, String o2) {return o1.compareTo(o2);}});tset.add(“fff”原创 2021-09-13 03:37:06 · 123 阅读 · 0 评论 -
33. ajax和反射的作用
今天的内容1.ajax的删除:在不重新加载整个页面的情况下,只删除当前这一条数据.实现思路1:先在前端用ajax将要删除的学生传到后台Servlet中将数据库表中当前这个学 生数据给删除掉;将删除的结果响应给前端ajax,前端ajax得到结果后用 JavaScript动态删除这个学生这行记录就可以.优点:节省带宽.缺点:当前页面不刷新的时候每删除一条记录就少显示一条记录.eg://删除学生,第一个参数要删除的学生姓名,第二个参数是删除的按纽节点对象function delStu(un原创 2021-09-13 03:35:20 · 64 阅读 · 0 评论 -
32. xml
1.xml:是一种可扩展的标记语言,它也是由标签组成,不同的是它的标签名可以自定义.后缀名:.xml.2.xml作用:用来传输和存储数据。用来作为配置文件;用来跨平台进行数据交换格式.用来作 为持久文件存数据.注意:xml和html都是标记语言,由标签组成.html专门作为前端页面展示,xml用来 作后台数据传输和存储.3.xml的组成(了解)3.1:xml标签规范:3.1.1:XML标签区分大小写.3.1.2:XML标签一定要关闭.单标签:<标签名 属性名=“属性值”/&g原创 2021-09-13 03:33:41 · 73 阅读 · 0 评论 -
31. 网络编程
今天内容1.计算机网络:将分布在不同区域不同地方的多台计算机和网络设备通过线程连接起来组成一 套大型系统,来实现计算机之间的信息传递和资源共享的设备.2.网络编程:编写一个程序来实现网络间信息传递.网络编程要使用的技术:网络编程+多线程+流3.网络编程三要素:3.1:IP:ip地址是每台计算机在网络中唯一标识.在同一个网络中不能有相同ip地址.在不同网络中,可以有相同ip地址.本机回环地址:127.0.0.1查看本机IP:运行->cmd->ipconfig查看本机是否能与其原创 2021-09-13 03:31:06 · 198 阅读 · 0 评论 -
29.反射
今天的内容:1.反射机制:Java的反射机制是指在运行状态中,对于任何一个类,都可以知道这个类所有属性 和方法,对于任何一个对象,都可以用这个对象调用所有方法和属性,这种动态 获取数据和操作对象的方法和属性的能力叫反射机制.2.反射:将java类中所有成员属性,方法,构造方法映射成一个个对象.反射是所有框架的灵魂.属性->映射成->Field的对象方法->映射成->Method的对象构造方法->映射成->Constructor的对象3.反射对象:当程原创 2021-09-01 07:35:36 · 80 阅读 · 0 评论 -
1.2 jvm调优具体细节
https://blog.csdn.net/weixin_42447959/article/details/81637909转载 2021-08-27 16:50:59 · 78 阅读 · 0 评论 -
28.独特流
1.内存流:ByteArrayOutputStream,内存流效率高.内存流关闭无效.eg:public static void main(String[] args) throws IOException {//1.创建流对象ByteArrayOutputStream baos=new ByteArrayOutputStream();//2.用流对象向内存中写入内容baos.write(“abdefefefeefefefeffef我是中国人,我爱中国.写个50个字符试试,试试就试试.我爱学习,学原创 2021-08-27 00:28:33 · 67 阅读 · 0 评论 -
27. 字符流
1.所有字符流都是处理流封装字节流.2.基本字符流:可以设置字符编码,解决乱码问题.还可以实现内容追加.2.1:基本字符输入流:Reader->InputStreamReadereg:public static void main(String[] args) throws IOException {//声明流对象InputStreamReader isr=null; try { //1.创建流对象 isr=new InputStreamReader(new FileInputSt原创 2021-08-27 00:27:16 · 85 阅读 · 0 评论 -
26. file和字节流
1.File类:文件和目录路径名的抽象表示2.绝对路径:带盘符的路径.相对路径:相对其他文件或目录的一个路径叫相对路径.如果当前文件或目录相对其他盘符的的文件或目录来说,此时相对路径==绝对路径.如果当前文件或目录相对当前所有在的盘符的文件或目录来说,此时相对路径!=绝对路径.根路径:相当当前项目的路径.3.file类常用方法:public static void main(String[] args) {//获得文件对象File f1=new File(“aa\a.txt”);Syst原创 2021-08-27 00:25:33 · 159 阅读 · 0 评论 -
24.设计模式
1.设计原则(扩展): 前人经过经验的总结出写Java代码的规则,平时写代码遵循这些规则,写出代码就规范性好.java要求程序高内聚低耦合.内聚性:独立性.耦合度:依赖性.1.1:单一职能原则:一个类一做一件事. 作用:提高程序内聚性,降低程序耦合度.1.2:里氏替换原则:所有使用父类父接口的地方,都可以用子类去替换. 作用:提高程序可扩展性.1.3:依赖倒置原则:能依赖抽象的就不依赖于具体的. 作用:提高程序可扩展性.1.4:接口隔离原则:一个接口只被设计一种功能.原创 2021-08-09 00:01:17 · 98 阅读 · 0 评论 -
23.线程同步
1.临界资源问题: 在同一个进程中有多个线程执行同一任务,有一个共享资源,当一个线程操作共享资 源时,还没来得及修改,另一个线程把cpu时间片抢去了,又来操作共享资源,这时就 出现.临界资源问题.2.解决临界资源问题,要用到线程同步.3.线程同步:让想一起执行代码绑定成一个代码块,一个线程进去执行这个代码块,其他线程就不能进去,只能在外面等待,等待代码块中线程执行完了,让代码块共享资源让出来,哪个 线程抢到cpu时间片就可以进入代码块中执行了,这就是线程同步.4.线程同步的方式:原创 2021-08-09 00:01:03 · 69 阅读 · 0 评论 -
25. 线程池
2.线程池的作用:减少创建线程对象和销毁线程对象的时间,从而提高线程对象使用效率.3.线程池:存放多个线程对象容器.4.线程池常用接口和类 4.1:ExecutorService:线程池接口 常用方法: shutdown()关闭线程池 submit(Runnable task) 从线程池中拿出一个线程对象来执行任务 4.2:Executors:线程池工具类对象 常用方法: 4.2.1:newCachedThreadPool();创建一个可缓存的线程池,可随机创建线程对象原创 2021-08-09 00:01:29 · 90 阅读 · 0 评论 -
22. 多线程基础
1.进程:系统进行资源分配调用的独立单元叫进程.每个进程都有自己独立内存空间和系统资源.(正在运行的程序)cpu时间片:指的是系统资源和内存空间.2.线程:进程中的一条执行线路.每个线程要执行一个任务.进程中所有线程共享当前这个进程中系统资源和内存空间.同一个进程中多个线程之间是互抢资源竟争关系.3.进程与线程的关系:一个进程中可以一个到多个线程;一个线程只属于一个进程.4.实现线程:有三种实现方式,前两种公司常用,第三种基本不用. 4.1:继承Thread类,来实现线程 eg:原创 2021-08-09 00:00:48 · 224 阅读 · 0 评论 -
21. java之多线程
二、多线程2.1 多线程的创建方式1)继承Thread类2)实现Runable接口3)实现Callable接口/** * callable方式创建线程 * 返回值 * * 线程间的通讯(wait/notify) */public class Test1 { public static void main(String[] args) {// //开启一个子线程// //继承Thread类// new Thread(){//原创 2021-08-03 18:48:43 · 251 阅读 · 0 评论 -
20.2 HashMap(集合底层源码解析)
1.2 Map体系1.2.1 HashMap & Hashtable1)底层实现和特点HashMap和Hashtable底层都是由哈希表实现,HashMap和Hashtable的关系与ArrayList和Vector的关系是一样的。HashMap线程不安全,Hashtable线程安全。特点:HashMap的key无序不可重复,value可以重复2)哈希表的介绍什么是哈希表?哈希表是一种用于快速查询的数据结构,在精准定位方面性能非常的好(通过key找value),查找速度和元素的个原创 2021-08-03 17:24:25 · 173 阅读 · 0 评论 -
18.3 LinkedList(集合底层源码分析)
1.1.2 LinkedList1)底层实现特点特点:元素有序且可重复底层实现:双向链表2)什么是双向链表?链表在内存中不是一串连续的地址,由一个一个节点组成,每个节点可以分为3部分(数据部分,头指针,尾指针)优势:从中间插入和中间删除,只需要移动节点的指针指向,无需移动节点的位置缺点:查询一个元素时,必须从头/尾依次往后/往前遍历[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vvYLcJXG-1624205319565)(img/image-202.原创 2021-06-21 00:09:27 · 130 阅读 · 0 评论 -
18.2 ArrayList(底层源码解析)
一、集合体系1.1 Collection体系1.1.1 ArrayList & Vector1)底层实现和特点底层实现:动态数组实现特点:元素有序且可重复。Vector是线程安全,ArrayList是线程不安全的。关系:Vector是JDK1.0就有个类,但是现在所学习的集合体系是JDK1.2才产生的。因此在JDK1.2之后,sun公司强行的让Vector实现了List接口。所以Vector内部出现了很多工程重复的方法。2)什么是动态数组?注意:Java中本质没有动态数组的,一原创 2021-06-20 00:31:20 · 139 阅读 · 0 评论 -
1.1 java之入门(垃圾回收机制)
1.什么是垃圾内存就像一个房间,写程序的时候不断的往这个房价放数据,不用了这个垃圾得自己回收,不管什么语言都会有垃圾,2.垃圾怎么找?引用计数,有3个引用,我这个对象就是3,去掉一个引用我这个对象减一个,什么时候变为0了这个对象·就是一个垃圾,但是不能解决环形垃圾,一坨垃圾,单个说又不是垃圾,jvm里面用根可达算法,就是从线程栈变量,静态变量,常量池从根开始找找不到你的就是垃圾。3.怎么清除标记清除:找到的垃圾,直接改成可用,最后内存会碎片化,速度比较快拷贝:不管你又多少内存直接砍成两半,把有用原创 2021-05-28 18:37:15 · 175 阅读 · 0 评论 -
21. java之集合总结
1.ArrayList:存储有序,可重复的单一对象.底层采用Object[]存值.优点:遍历集合和修改集合中元素效率高.缺点:添加和删除指定索引处的元素效率低.2.LinkedList:存储有序,可重复的单一对象.底层采用双向链表结构存值.优点:添加和删除指定索引处的元素效率高.缺点:遍历集合和修改集合中元素效率低;3.HashSet:存储无序,唯一(不可重复)的单一对象.底层采用HashMap的Key存值.优点:唯一性(去重).唯一性:通过HashSet泛型类型中重写hashCode(原创 2021-08-02 00:00:09 · 87 阅读 · 0 评论 -
20. java之map集合
1.为什么要学Map集合,因为很多技术的底层用了Map集合,学习Map集合有助力了解技术的底层原理.2.Map:存储Key-value对.3.HashMap:按Key-value存值,Key无序,唯一的单一对象.底层采用数组+链表(哈希表)存值.注意:HashMap想通过Key的值来去重,要求HashMap的Key的泛型类型中重写hashCode()和equals().Key唯一性:通过hashCode()和equals()方法实现的. eg:public class Mouse2 { pub原创 2021-08-01 18:07:24 · 78 阅读 · 0 评论 -
19. java之set集合
1.Set接口:存储无序,唯一的单一对象.2.HashSet:存储无序,唯一的单一对象.底层采用HashMap的Key存值.注意:HashSet集合根据值去重,它的泛型类型中一定要重写hashCode()和equals()方法, 除非泛型类型是系统数据类型,我们不用写,底层已经重写了.唯一性(去重):通过hashCode()和equals()方法来保证.优点:去除重复元素. eg:public static void main(String[] args) { //创建集合对象 Ha原创 2021-08-01 18:02:59 · 515 阅读 · 0 评论 -
18. java之list集合
1.集合:存储多个引用数据类型对象的容器,它的长度可变.(动态数组,可以存多个数据,而且长度可变)2.集合中常用概念:有序:按照添加顺序来排列就叫有序.可排序:按照数字由小到大或由大到小或按字典顺序由前到后或由后到前来排列叫可排序.唯一性:不可重复.3.集合家族:3.1:Collection:集合接口,存储无序,可重复的单一对象. 3.1.1:List:集合接口,存储有序,可重复的单一对象. 3.1.1.1:ArrayList:存储有序,可重复的单一对象,底层采用Object[]存原创 2021-08-01 17:57:08 · 240 阅读 · 0 评论 -
17. java之异常
1.程序中异常:在程序执行过程中由于设计或设备原因导致的程序中断的异常现象叫做异常。 2.异常类型 2.1运行时异常: 运行时异常:(RuntimeException)在编译过程不会发现(没有语法错误),但 是在执行程序过程中,由于重大的 逻辑错误导致的程序中断。 所有RuntimeException的子类包括RuntimeException都属于运行时异常 常见的运行时异常 NullPointerException原创 2021-08-01 17:36:47 · 76 阅读 · 0 评论 -
16.java之枚举
Java中引用类型: 数组、类、接口、枚举、注解什么是枚举 2.1:枚举是一个引用类型,枚举就是一个规定了取值范围的变量类型。 2.2:枚举变量不能使用其他的数据,只能使用枚举中常量赋值。提高程序安全性3.格式public enum 枚举名{ //枚举的取值范围 //枚举中可以生命方法}注意: 1.枚举中的成员是此枚举的取值范围; 2.所有的值之间使用逗号分隔,最后一个值后可以加分号也可以不加分号; 3.在枚举中可以声明方法,但.原创 2021-08-01 17:11:03 · 135 阅读 · 0 评论 -
15. java之常用类
1.java.util.Date:java中日期时间类.eg:public static void main(String[] args) { //获得系统日期 Date today=new Date(); System.out.println("当前系统时间为:"+today); //创建日期对象 Date d1=new Date(5000); System.out.println("d1:"+d1); //判断当前日期是否某个日期后 boolean b1=today.after原创 2021-08-01 16:46:59 · 63 阅读 · 0 评论 -
14.正则表达式
1.正则表达式的作用:用来判断一个字符串是否符合指定要求.正则表达式的好处:简化判断代码.2.正则规则:预定义字符类. 任意字符(与行结束符可能匹配也可能不匹配)\d 数字:[0-9] \w 单词字符:[a-zA-Z_0-9]边界匹配器^ 行开头$ 行结尾数量:X? 一次或0次 X* 0次或多次(包括1次) X+ 一次或多次X{n} 恰好n次X{n,} 至少n次 X{n,m} 至少n次,不超过m次4.判断字符串是否全部匹配一个正则表达式:原创 2021-08-01 16:41:47 · 186 阅读 · 0 评论 -
13.包装类和字符串
1.包装类java是一种纯面向对象的语言.而八种基本数据类型违反Java纯面向对象特征,java语言为了保证它是一种纯面向对象的语言给八种基本数据类型提供包装类.1.1:包装类:将基本数据类型封装成类,这种类型变量就是对象.所有包装类是引用数据类型. 基本数据类型 包装类 byte Byte short Short int Integer long Long float Float double Double boolean Boolean原创 2021-08-01 16:29:13 · 82 阅读 · 0 评论 -
12. 抽象类和接口
1.abstract:抽象的,可以用来修饰类和方法1.1:抽象类:用abstract修饰的类叫抽象类. 1.1.1:抽象类的特征: 1.1.1.1:抽象类不能实例化(不能创建对象). 1.1.1.2:抽象类有构造方法,构造供子类调用. 1.1.1.3:抽象类中既可以有0个到多个抽象方法,也可以有0个到多个非抽 象方法. 1.1.2:抽象类的适用场景: 1.1.2.1:当一个类创建对象时没有任何意义,这个类就可以定为抽象类(其实就是作为模板类来使用); 1.1.2原创 2021-08-01 00:14:02 · 91 阅读 · 0 评论 -
8. java之类和对象
1.面向过程:将一件分为若干步骤,自己亲力亲为一步一步完成.解决简单的问题.面向对象:将做一件事的所有参与者找出来,自己不做事,调动所有参与者协调去做事.解决复杂的问题.面向过程和面向对象是相辅相成,互为补充.“老王开车去东北”面向过程:老王自己去买辆车,自己开车,自己导航,自己加油启动车子开到东北去.面向对象:老王租个车,请个司机,让司机导航,开车去东北,老王只要坐在车里.2.Java是一种纯面向对象语言.面向对象的语言都有三大特征:封装,继承和多态.3.对象:用来描述客观事物的实体.(能用原创 2021-07-27 00:14:28 · 95 阅读 · 0 评论 -
7. java之方法
1.方法:具有特定功能的一段独立的代码块就叫方法.方法名:代码块的名称.3.方法的特征3.1:方法声明的语法: 访问修饰符 扩展修饰符(static/final/abstract) 返回值类型 方法名 (参数类型1 参数名1,参数类型2 参数名2......){ 代码块; [return 结果] }3.2:访问修饰符(表示访问权限): public:表示公共的(任何类和方法中都可以访问), protected:表示受保护的(在同一个包中或父子类中可以调用),原创 2021-07-26 23:43:12 · 63 阅读 · 0 评论 -
1.2 java之入门(内存分析)
1.java程序在内存中运行.2.内存划分:栈:存放局部变量和栈帧(main()在栈帧中运行).效率最高.堆:所有new出来的东西存放在堆中.和成员属性,效率比栈低点.方法区:存放.class文件,静态区(存放静态变量),常量池(存放常量).效率最低.注意:常量池中数据不可重量.3.一个对象内存分析:eg:public class Test1 {public static void main(String[] args) { //创建对象 Student stu1=new Student原创 2021-07-25 23:39:13 · 146 阅读 · 0 评论 -
10. java之多态
1.(扩展)成员变量 VS 局部变量:在同一个范围内不能声明同名的变量,在不同范围内可以有同名的变量.1.1:声明位置不同:成员变量在类中直接声明;局部变量在方法中声明.1.2:生命周期不同:成员的生命周期随着对象创建而产生,随着对象销毁而结束;局部变量 的生命周期仅在声明的方法中.1.3:作用域不同:成员变量的作用由访问修饰符决定;局部变量的作用在声明它的大括号 中.1.4:默认初值不同:成员变量不赋值有默认值,String类型默认值是null,int类型默认值0,double类型原创 2021-07-25 23:38:19 · 168 阅读 · 1 评论 -
9. java之static、封装、继承和重写
1.static:静态的,可以用static修饰成员属性,成员方法.1.1:静态属性:用static修饰成员属性叫静态属性.1.1.1:静态属性特征:静态属性属于类,类的所有对象共享.静态属性的缺点:静态属性耗内存.1.1.2:静态属性生命周期:随着类的加载而产生,随着类销毁而销毁.1.1.3:静态属性适用场景:当一个类所有对象想共用某个属性时,这个属性就可以声明为静态的.1.1.4:静态属性的调用:同一个类中:静态属性名;不同的类中:类名.静态属性名; (推荐)对象名.静态属性名;1.原创 2021-07-25 23:37:18 · 205 阅读 · 3 评论 -
6. java之二维数组
1.一维数组:在内存开辟一段连续的空间用来存值.2.二维数组:在内存开辟一段连续的空间用来存值,每个空间存的是一个一维数组.3.n维数组:在内存开辟一段连续的空间用来存值,每个空间存的是一个n-1维数组.4.二维数组特征:4.1:二维数组是引用数据类型.4.2:二维数组的四个组成部分(四要素):数据类型,数组名,元素(二维数组每个元素是一个一维数组),索引(二维数组的索引,二维数组每个元素即一维数组也有索引).4.3:同一个数组中,元素的数据类型相同,不同的数组数据类型可不同.4.4:访问二维原创 2021-07-25 23:36:06 · 357 阅读 · 2 评论 -
5. java之数组
1.数组:在内存中开辟一段连续的空间存值就叫数组.1.1:数组是引用数据类型.1.2:数组的四个组成部分(四要素):数据类型,数组名,元素,索引(下标).1.3:同一个数组中,元素的数据类型相同,不同的数组数据类型可不同.1.4:访问数组中每个空间:数组名[索引]1.5:数组的长度:数组名.length1.6:数组的索引范围:0~数组名.length-1.1.7:数组的索引不能超过索引范围,如果超过就报ArrayIndexOutOfBoundsException1.8:数组一但分配了空间,它原创 2021-07-25 23:35:01 · 175 阅读 · 2 评论 -
4.java之循环结构
1.循环结构: 重复性做某件事. 一般在Java中不能出现死循环(无限循环). 作用:减化代码量;维护方便.2.循环结构组成部分:循环初始条件:给循环变量赋初值.循环判断条件:循环终止条件.循环叠加条件:改变循环变量的值.循环体:要重复执行的操作.3.while循环:解决先判断后执行的重复性操作问题.3.1:语法: 循环初始条件; while(循环判断条件){ 循环体; 循环叠加条件; } 3.2:执行流程:先执行循环初始条件,再执行循环判断条件,原创 2021-07-20 23:34:07 · 100 阅读 · 0 评论 -
3. java之选择结构
1.从键盘上接收数据第一步:在类前面导包import java.util.Scanner;第二步:在需要接收数据前获得接收数据的能力 //获得具有从键盘上接收数据的能力 Scanner input=new Scanner(System.in);第三步:用接收能力去接收数据 接收int数据: input.nextInt(); 接收double数据: input.nextDouble(); 接收String数据: input.next(); 注意:不能从键盘上接收char原创 2021-07-18 17:28:54 · 86 阅读 · 0 评论 -
2. java基本语法
1.标识符:需要自定义名称都叫标识符.eg:类名,变量名,方法名1.1:标识符只能由字母,数字,_,$组成.1.2:标识符只能以字母,_,$开头.1.3:标识符可以包含数字,但是不能以数字开头.1.4:标识符除了_,$以外,不能包含其他任何特殊字符.1.5:标识符不能用java中关键字.1.6:标识符按义取名.帕斯卡命名法:标识符可以由一到多个单词组成,每个单词首字母大写,其他的写.类名采用帕斯 卡命名法.eg:StudentName驼峰式命名法:标识符可以由一到多个单词组成,第一个原创 2021-07-11 22:01:59 · 136 阅读 · 0 评论