![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习总结
Java学习总结
Little chicken leg
喜欢吃大鸡腿
展开
-
lambda表达式的推导
0、写在前面学习多线程过程中解除到lambda表达式,现在总结一下。1、 lambda表达式为什么使用lambda表达式避免匿名内部类定义过多可以简洁代码去掉没意义的代码,留下核心的逻辑其实属于函数式编程的概念函数式接口:任何接口,如果只包含一个抽象方法,那么它就是一个函数式接口直接上代码,感受各种类package com.laoongcai.gitxuexi.lambda;/** * @Author: chen * @Description: 推导lambda表达式原创 2020-11-03 17:36:12 · 281 阅读 · 0 评论 -
Mybatis逆向工程创建使用
0、写在前面逆向工程简单理解为:由数据库生成代码。但只能生成单表的代码。步骤如下:创建数据库,创建表新建springboot的project配置POM.xml文件配置GeneratorMapper.xml文件由数据库生成代码1、创建数据库,创建表我使用的是SQLyog,比较简单,贴图:我新建的数据库为“mybatis”,使用的表为“user_table”。注意单词拼接一定要使用下划线,小写即可。2、新建springboot的projectNew->project->s原创 2020-09-30 11:29:18 · 148 阅读 · 0 评论 -
IDEA连接MySQL数据库
MySQL数据库IDEA 方面jar下载下载https://dev.mysql.com/downloads/connector/j/导入jar包解压之后再导入加载完成,查看在2中添加所需的表代码测试package com.mysqlTest.chen;import java.sql.*;public class JdbcFirstDemo { public static void main(String[] args) throws ClassNotFoundE原创 2020-09-22 15:10:08 · 434 阅读 · 0 评论 -
动态规划总结
例子参考链接: link.问题:如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?package com.szu.DP;/** * @author chen * @create 2020-08-16 22:07 *//* 硬币面值:1,3,5 凑i元需要至少硬币数dp[i]*/public class coinCountTest { public static void main(String[] args) { // 面值 int[]原创 2020-09-22 14:41:57 · 83 阅读 · 0 评论 -
JVM系列之1:内存与垃圾回收篇
目录:JVM系列之1:内存与垃圾回收篇1.01 JVM与Java体系结构1.02 类加载子系统1.03 运行时数据区概述及线程1.04 程序计数器(PC寄存器)1.05 虚拟机栈1.06 本地方法接口1.07 本地方法栈1.08 堆空间1.09 方法区1.10 对象实例化内存布局与访问定位1.11 直接内存1.12 执行引擎1.13 StringTableJVM系列之2:字节码与类的加载篇JVM系列之3:性能监控与调优篇JVM系列之4:大厂面试篇...原创 2020-08-28 18:32:47 · 121 阅读 · 0 评论 -
Java基础总结目录
目录Java集合框架概述Java集合框架概述-图片版包、jar存档文件和部署接口与内部类远程部署的RMI集合和泛型IO流总结—节点流、缓冲流、转换流、标准输入输出流、打印流、数据流java网络编程反射Java 8 新特性以上比较总结源于:《Head First Java》...原创 2020-08-28 18:30:17 · 74 阅读 · 0 评论 -
1.12 执行引擎
1、执行引擎2、Java代码编译和执行过程3、机器码、指令、汇编语言4、解释器5、JIT编译器原创 2020-08-25 14:51:38 · 98 阅读 · 0 评论 -
1.11 直接内存
直接内存原创 2020-08-24 15:49:30 · 73 阅读 · 0 评论 -
1.10 对象实例化内存布局与访问定位
1、对象的实例化从字节码角度看待对象的创建过程Java对象分配流程:2、对象的内存布局3、对象的访问定位原创 2020-08-24 15:49:19 · 82 阅读 · 0 评论 -
1.09 方法区
1、栈、堆、方法区的交互关系2、方法区的理解2.5.4. Method Area3、设置方法区大小与OOM4、方法区的内部结构5、方法区的使用举例方法区的使用:invokevirtual :虚方法调用6、方法区的演进细节永久代被替换的原因:1、为永久代设置空间大小是很难确定的2、对永久代进行调优是很困难的(full GC 花费很多时间)full GC 很花时间jdk7时:原创 2020-08-24 11:02:44 · 120 阅读 · 0 评论 -
1.08堆空间
复习1、堆的核心概述2、设置堆内存大小与OOM3、年轻代与老年代4、图解对象分配过程对象分配的特殊情况:工具:JProfiler破解版下载安装,按链接提示操作即可JProfiler115、Minor GC、Major GC、Full GCMinor GC即是Young GC(TGC)判断存活对象的存放位置,s1和s2轮流存放,每次的阈值为156、堆空间分代思想7、内存分配策略8、为对象分配内存:原创 2020-08-23 14:43:27 · 125 阅读 · 0 评论 -
1.07 本地方法栈
原创 2020-08-19 16:37:35 · 65 阅读 · 0 评论 -
1.06 本地方法接口
本地方法接口:Native Method Interface(JNI)原创 2020-08-19 16:07:46 · 90 阅读 · 0 评论 -
1.05 虚拟机栈
1、虚拟机栈概述设置虚拟机栈大小:2、栈的存储单位3、局部变量表字节码中方法内部结构的剖析this 不能用于静态方法,因为this变量不存在于当前方法的局部变量表中!!4、操作数栈操作数栈:Operand stack栈:可使用数组或链表来实现5、代码追踪“iinc”操作码是直接把局部变量数组的“3”处的值增加1,而不是操作数栈栈顶的数增加1。“istore 4”是把栈顶的数存在局部变量表“4”中。6原创 2020-08-19 15:37:40 · 86 阅读 · 0 评论 -
1.04 程序计数器(PC寄存器)
PC Register介绍举例说明两个常见问题原创 2020-08-17 20:39:40 · 138 阅读 · 0 评论 -
1.03 运行时数据区概述及线程
从1.03到1.10都是运行时数据区内容概述线程原创 2020-08-17 11:43:50 · 112 阅读 · 1 评论 -
1.02 类加载子系统
1、内存结构概述2、类加载器与类的加载过程3、类加载器分类4、ClassLoader的使用说明5、双亲委派机制6、其他原创 2020-08-17 10:48:31 · 206 阅读 · 0 评论 -
1.01 JVM与Java体系结构
1、前言2、参考书目3、Java及JVM简介JVM拥有语言无关性,只关心“字节码”文件。统称为:jvm字节码4、Java发展的重大事件5、虚拟机与Java虚拟机6、JVM的整体结构7、Java代码执行流程8、JVM的架构模型字节码反编译操作package com.szu.chen;/** * @author chen * @create 2020-08-16 9:02 */// 字节码反编译操作:JVMDemo\out\productio原创 2020-08-16 12:05:52 · 77 阅读 · 0 评论 -
JVM系列之4:大厂面试篇
mark原创 2020-08-15 14:15:51 · 225 阅读 · 0 评论 -
JVM系列之3:性能监控与调优篇
mark原创 2020-08-15 14:15:15 · 252 阅读 · 0 评论 -
多线程
1、基本概念:程序、进程、线程程序、进程、线程程序:一段静态代码的。进程:一个正在运行的程序。是一个动态的过程:有自身的产生、存在和消亡的过程。进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域。线程:进程细分为线程,是一个程序内部的一条执行路径。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(PC),线程切换的开销小。单核CPU、多核CPU单核CPU:假多线程,因为在一个时间单元内,只能执行一个线程的任务。多核CPU:真多线程,同时进行。一个jav原创 2020-08-15 10:39:11 · 165 阅读 · 0 评论 -
Java 8 新特性
LambdaLambda 表达式的使用举例package java8.Lambda;import org.junit.Test;import java.util.Comparator;import java.util.function.Consumer;/** @author Chen *//* 1.举例:(o1,o2)-> Integer.compare(o1,o2); 2.格式: -> :Lambda操作符 或 箭头操作符原创 2020-08-12 09:13:51 · 128 阅读 · 2 评论 -
反射
Class类反射的使用package com.ReflectionTest.common;import org.junit.Test;import java.lang.annotation.ElementType;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.re原创 2020-08-10 10:30:18 · 89 阅读 · 0 评论 -
java网络编程
网络编程概述网络通信要是概述通信要素1:IP和端口号IPtry { InetAddress inetAddress = InetAddress.getByName("192.186.0.1"); System.out.println(inetAddress); InetAddress inetAddress1 = InetAddress.getByName("www.baidu.com"); System.out.println(inetAddre原创 2020-08-07 15:09:49 · 90 阅读 · 0 评论 -
IO流总结---节点流、缓冲流、转换流、标准输入输出流、打印流、数据流
节点流定义:程序用于直接操作目标设备所对应的类叫节点流节点流: FileInputStream、FileOutputStream、 FileReader、 FileWriterFileReader public void test() throws IOException { // 路径,相较于当前module,如果是在main()中则相较于当前工程 // 1、实例化File类的对象,指明要操作的文件 File file = new File("src\\com\\IO\\原创 2020-08-06 16:58:20 · 229 阅读 · 0 评论 -
Java集合框架概述-图片版
查方式:右键->在新标签页中打开图片原创 2020-08-01 11:36:25 · 96 阅读 · 0 评论 -
集合和泛型
集合和泛型集合的API分支主题 4集合List(interface)ArrayList无自动字母排序没有sort()优点:成本低,插入末尾或者指定位置LinkdListVectorSet(interface)HashSet如何判断相等依据hashCode()没被覆盖时,依据内存位置计算若两对象的hashcode相等,则再调用equals()来判断是否真的相等若hashCode()没有重写过,则堆上的两个对象永远不可能相等若equals原创 2020-08-01 11:26:39 · 77 阅读 · 0 评论 -
远程部署的RMI
远程部署的RMI远程程序调用(Remote Method Invocation, RMI)调用远程机器上的对象远程过程调用的设计创建出4种东西服务器客户端服务器辅助设计客户端辅助设计1、创建客户端和服务器应用程序1、服务器应用程序是个远程服务,是个带有客户端会调用的方法的对象2、创建客户端和服务器端的辅助设施(helper)客户端–>客户端辅助设施<—>服务器辅助设施–>服务器调用方法的过程1、客户端对象对辅助设施对象调用doBigThing()2、原创 2020-08-01 11:25:15 · 157 阅读 · 0 评论 -
接口与内部类
接口与内部类接口对类的一组需要描述,这些类要遵从接口描述的统一格式进行定义接口的特性1、接口中的方法自动地被设置为public2、接口中的域被自动设为public static final为什么需要接口?每个类只能拥有一个超类,但却可以实现多个接口接口与抽象类为什么不用抽象类替代接口?每个类只能扩展一个类,但可以实现多个接口对象克隆拷贝与克隆拷贝:拷贝一个对象,仅是拷贝了对象的引用克隆:克隆一个对象,是完全copy一个对象自带cloneEmployee copy =原创 2020-08-01 11:24:32 · 96 阅读 · 0 评论 -
包、jar存档文件和部署
包、jar存档文件和部署部署应用程序部署的选择本机 Executable Jar(Java ARchive 存档)两者之间的组合:Web Start 、RMI app远程 HTTPExecutable Jar将源代码与类文件(编译过的)分离项目目录MyProjectsource.javaclasses.class把类包进包中用包防止类名称的冲突-d处于source路径位置则:javac -d …/classes *.java原创 2020-08-01 11:23:39 · 141 阅读 · 0 评论 -
Java集合框架概述
Java集合框架概述对多个对象的存储数组弊端(故需要集合)数组在内存存储方面的的特点1、一旦初始化以后,其长度就确定了2、数组一旦定义好,其元素的类型也就确定了。我们也只能操作指定类型的数据了,比如String[] arr; int[] arr1;数组在存储数据方面的弊端1、一旦初始化以后,其长度就不可修改2、数组中提供的方法有限,对于添加、删除、插入数据等操作、非常不便,效率不高。3、元素个数,没有现成属性或者方法使用4、数组存储数据的特点:有序、可重复。对于无序、不可重复的需求原创 2020-08-01 11:18:26 · 112 阅读 · 0 评论 -
集合相关习题
集合相关习题习题如何遍历Map的key集,value集,key-value集,使用上泛型// 如何遍历Map的key集,value集,key-value集,使用上泛型 public void test() { HashMap<String, Integer> map = new HashMap<>(); map.put("AA", 123); map.put("BB", 456); // 遍历key集 Set<String原创 2020-08-01 11:13:02 · 406 阅读 · 0 评论