![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
拼命的野驴
卸磨之前,一定要拼命的跑掉
展开
-
虚拟机类类加载机制(笔记)
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。Java类加载的优点和缺点: 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令加载时稍微增加一些性能开销,但是会为Java应用程序提供高度灵敏的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期间动态加载和动态链接这个特点实现的。例如如果编写一个面向接口的应用程序,...原创 2020-08-19 18:45:40 · 131 阅读 · 0 评论 -
ThreadLocal
ThreadLocal为Java并发提供了一个新的思路,它用来存储Thread的局部变量,从而达到各个Thread之间的隔离运行。它被广泛应用于框架之间的用户资源隔离、事务隔离等。一、内存泄露原因ThreadLocal操作不当会引发内存泄漏,最主要的原因在于它的内部类ThreadLocalMap中的Entry的设计。Entry继承了WeakReference<ThreadLoca...转载 2020-01-19 12:08:38 · 164 阅读 · 0 评论 -
Java -verbose:gc 命令详解 JVM参数以及其含义
-Xms2g:JVM启动初始化堆大小为2g,Xms的默认是物理内存的1/64但小于1G。-Xmx2g:JVM最大的堆大小为2g,Xmx默认是物理内存的1/4但小于1G;将-Xms和-Xmx的值配置为一样,可以避免每次垃圾回收完成后对JVM堆大小进行重新的调整。-Xmn512M:堆中的新生代大小为512M-Xss128K:每个线程的堆栈大小为128K-XX:P...转载 2019-11-12 16:30:48 · 612 阅读 · 0 评论 -
String, toString(), String.valueOf()的区别
参考:https://www.cnblogs.com/xhyouyou/p/6014367.html一.StringString进行转换的时候,如果类型不匹配会抛出异常。因此在转化的时候如果不确定该类型是否为String类型,需要进行类型判断。public static void main(String[] args) { Object num = 3.2d; String str = (...转载 2018-06-07 14:30:29 · 493 阅读 · 0 评论 -
了解Java线程池
转自:http://www.cnblogs.com/aspirant/p/6920418.html文章可能篇幅有点小长,但是静下心来认真的读取,你会收获很多。。。。第一章1、什么是线程池: java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池。 多线程技术主要解决处理器单...转载 2018-12-14 17:43:32 · 100 阅读 · 0 评论 -
final关键字
1. final关键字修饰类的时候,该类是不可以被继承的,如下图所示:如果继承final修饰的类,会有变异不通过的报错。2.final修饰的方法,不可以被覆盖。final修饰的方法被认为是一个完善的方法,不让其子类进行更改覆盖其方法,编译不会通过3.final修饰变量final修饰的变量不可以被改变。修饰的引用变量也不可以被改变,但是引用变量中的内容可以改变。代码如...原创 2019-02-13 16:55:26 · 91 阅读 · 0 评论 -
synchronize原理
本文转自:https://blog.csdn.net/u011212394/article/details/82228321一.synchronized的三种应用方式1.修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁2.修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁3.修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对...转载 2019-07-24 15:27:17 · 319 阅读 · 0 评论