![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 55
xishui9690
这个作者很懒,什么都没留下…
展开
-
JVM[day13]
编译期处理语法糖:就是指java编译器把 .java源码编译为 .class字节码的过程中,自动生成和转化一些代码,主要是为了减轻程序员的负担默认构造器如以下代码:public class Candy1{}编译后成class的代码:public class Candy1{ public Cany1(){ super(); }}可以看到编译后的class代码中调用了无参构造方法,这个就是编译器给我们加上的自动拆装箱指java的基本类型和包装类型的转换,这个特性是jdk5开始加原创 2022-03-25 17:26:38 · 345 阅读 · 0 评论 -
JVM【day11】
类加载器与字节码技术字节码指令javap工具自己分析文件结构太麻烦了,Oracle提供了javap工具来反编译class文件运行结果如图:-v表示输出类文件的详细信息条件判断指令指令图如图:指令为16进制几点说明:byte,short,char都会按int比较,因为操作数栈都是4字节goto用来进行跳转到指定行号的字节码源码:public class Demo_01{ public static void main(String[] args){ int a=0;原创 2022-02-21 17:44:32 · 395 阅读 · 0 评论 -
JVM【day10】
类加载器与字节码技术类文件结构一个简单的HelloWorld.javapublic class Demo_05 { public static void main(String[] args) { System.out.println("Hello world!"); }}执行javac -paremeters -d HelloWorld.java编译为HelloWorld.class后是这样的:这是二进制的字节码文件根据JVM规范,类文件结构如下:原创 2022-02-21 16:31:11 · 164 阅读 · 0 评论 -
JVM【day9】
垃圾回收器垃圾回收调优查看当前jvm的参数:在idea控制台输入,jdk的bin目录路径 -XX:+PrintFlagsFinal -version | findstr “GC”明确:调优和应用,环境有关,要根据实际情况而定调优领域1)内存2)锁竞争3)cpu占用4)io确定目标根据需要,选择合适的回收器高吞吐量:ParallelGC低延迟:CMS,G1,ZGC新生代调优新生代特点:所有的new操作的内存分配非常廉价死亡对象的回收代价是0大部分对象用过即死Minor G原创 2022-02-19 18:39:59 · 62 阅读 · 0 评论 -
JVM【day8】
垃圾回收器串行垃圾回收器单线程堆内存较小,适合个人电脑串行垃圾回收器回收过程如图:JVM参数:-XX:+UseSerialGC= Serial + Serial0ld,打开串行回收器,Serial 工作在新生代,使用复制算法,Serial0ld工作在老年代,使用标记整理算法吞吐量优先垃圾回收器多线程堆内存较大,需要多核cpu支持单位时间内STW的时间最短JVM参数:-XX:+UseParalle1GC(新生代) ~ -XX :+UseParalle10ldGC(老年代),开启原创 2022-02-18 20:38:50 · 164 阅读 · 0 评论 -
JVM【day7】
垃圾回收垃圾回收算法标记清除定义:Mark Sweep分为两个阶段,第一阶段,看哪些对象可以被当成垃圾回收,第二阶段就是清除,就是释放垃圾所占用的空间,释放并不是对每个字节进行清零操作,而是将对象所占用内存的起始和结束地址记录下来。放到空闲地址链表中。优点:速度快缺点:容易产生内存碎片(空间不连续)标记整理定义:Mark Compact分两个阶段:第一个阶段也是标记,第二个阶段是在垃圾回收时,会把可用的对象向前移动,使内存更加紧凑优点:没有内存碎片缺点:效率低复制定义:copy将原创 2022-02-17 18:47:50 · 160 阅读 · 0 评论 -
JVM【day6】
垃圾回收如何判断对象可以回收引用计数法只要一个对象被其他变量所引用,就让其计数加一,引用两次就加二,如果某一个变量不再引用,就让其计数减一,如果其计数为0,就可以进行回收弊端:循环引用可达性分析算法(jvm使用的一种算法)首先确定一系列根对象(肯定不能当成垃圾回收的对象),在垃圾回收前,首先对堆中所有对象进行扫描,看此对象是否被根对象直接或间接引用,如果被引用,则此对象不能被垃圾回收,反之会被垃圾回收哪些对象可以作为根对象?使用Eclipse中的Memory Analyzer(MAT),是原创 2022-02-16 18:23:13 · 65 阅读 · 0 评论 -
JVM【day1】
JVMJVM是什么jvm的定义:Java Virtual machine - java程序的运行环境(java二进制字节码的运行环境)好处:一次编写,到处运行(跨平台)自动内存管理,垃圾回收功能数组下标越界检查多态(面向对象编程的基石)比较:jvm,jre,jdkjvm和jre以及jdk的关系如下图所示:学习JVM有什么用帮助我们面试,提升我们的竞争力可以帮助我们理解底层的实现原理,有助于长远发展是中高级程序员的必备技能常见JVM如下图所示内存结构程序计数器原创 2022-02-09 17:51:24 · 181 阅读 · 1 评论 -
IDEA的一些快捷键
ctrl+shift+alt:多行操作psvm:生成main()方法;fori:生成for循环;Ctrl+Alt+v:自动补齐返回值类型ctrl+o:覆写方法ctrl+i:实现接口中的方法ctrl+shift+u:大小写转换CTRL+SHIFT+Z:取消撤销Alt+Insert:生成构造方法、getter、setterctrl+y:删除当前行Ctrl+Shift+J:将选中的行合并成一行ctrl+g:定位到某一行Ctrl+Shitft+向下箭头:将光标所在的代码块向下整体移动Ctr原创 2022-01-20 17:10:47 · 50 阅读 · 0 评论 -
javaweb重定向和转发的区别
JavaWeb学习随记重定向与转发的区别(面试题)相同点页面都会实现跳转不同点请求转发的时候,url不会产生变化重定向时候,url地址栏会发生变化简单的重定向代码: resp.sendRedirect("/down/json");//引号内为要冲定向的地址...原创 2022-01-18 12:13:38 · 233 阅读 · 0 评论 -
网页下载文件及注意事项
HttpServletResponseweb服务器接收到客户端的HTTP请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应一个HttpServletResponse;如果要获取客户端请求过来的参数:找HttpServletRequest如果要响应客户端消息:找HttpServletResponse常见应用向浏览器输出消息(ServletContext context = this.getServletContext())下载文件要获取下载文件的原创 2021-11-28 12:36:21 · 726 阅读 · 1 评论 -
Java中的字符串转化
Java中的字符串类型的转化字符串转数组String s="aa aa";String[]arr=s.split("");//调用split方法数组转字符串 StringBuffer buffer = new StringBuffer(); for (int i = 0; i < arr.length; i++) { buffer.append(arr[i]); } s=buffer.toString();...原创 2021-11-28 00:33:48 · 484 阅读 · 1 评论 -
Object类、常用API
【Object类、常用API】主要内容Object类Date类DateFormat类Calendar类System类StringBuilder类包装类Object类1.1 概述java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:public class MyClass /*extends Object*/原创 2021-11-23 21:59:49 · 48 阅读 · 0 评论 -
JDK的安装以及环境变量的配置
JDK的安装与环境变量的添加前言相信很多刚开始学习java的同学,都苦于jdk的安装和环境变量的配置,今天,我就带着大家来学习着如何安装jdk以及如何配置电脑的环境变量jdk的安装jdk官网下载地址在官网中选择一个自己开发所需的版本(一般为最新版本的前一两个版本)下面以图片形式介绍详细安装步骤点击更改,可以更改jdk的安装位置这个是捆绑jre包的安装,最好把jre和jdk放在同一个目录里安装完成点击确认即可环境变量的配置(以win10为例)win10搜索框输入编辑环境变量,如图原创 2021-11-22 19:20:07 · 680 阅读 · 1 评论