![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
唯一本尊
真正的勇士敢于直面惨淡的人生
展开
-
eclipse 打开txt文件乱码
eclipse一般默认GBK格式的编码,但是有些项目需要UTF-8编码,此时文本就会乱码。解决方法非常简单,右键txt文件,直接修改property,resource中的编码格式为GBK即可。原创 2017-04-13 14:55:47 · 6840 阅读 · 0 评论 -
Java新生代垃圾收集器
Stop-the-WorldJVM由于要执行GC而停止了应用程序的执行任何一种GC算法中都会发生多数GC优化通过减少Stop-the-World发生的时间来提高程序性能Safepoint分析过程中对象引用关系不会发生变化的点;产生Safepoint的地方:方法调用;循环跳转;异常跳转等安全点数量要适中JVM运行模式server启动较慢,程序运行速度较快,重量级的虚拟机...原创 2019-03-04 12:11:28 · 1243 阅读 · 0 评论 -
java老年代垃圾回收器
Serial Old收集器(-XX:+UseSerialOldGC , 标记-整理算法)单线程收集,进行垃圾收集时,必须暂停所有的工作线程简单高效,Client模式下默认的老年代收集器Parallel Old收集器(-XX:+UseParallelOldGC , 标记-整理算法 JDK6之后)多线程,吞吐量优先CMS收集器(-XX:+UseConcMarkSweepGC , ...原创 2019-03-04 12:32:31 · 1177 阅读 · 0 评论 -
java异常
异常处理机制主要回答了三个问题What:异常类型回答了什么被抛出where:异常堆栈跟踪回答了在哪抛出;why:异常信息回答了为什么被抛出;Error和Exception的区别从概念角度解析Java的异常处理Error:程序无法处理的系统错误,编译器不做检查;Exception:程序可以处理的异常,捕获后可能恢复;总结:前者是程序无法处理的错误,后者是可以处理的异常。Except...原创 2019-03-07 18:12:52 · 137 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
String StringBuffer StringBuilderString的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间StringStringStringBuilderString的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空...转载 2019-03-07 18:19:32 · 107 阅读 · 0 评论 -
Collection体系
前序工作中消失而面试却长存的算法与数据结构 优秀的算法和数据结构被封装到了java的集合框架中原创 2019-03-07 18:46:40 · 166 阅读 · 0 评论 -
HashMap基本了解
Map类关系图HashMap(Java8以前):数组+链表(非synchronized)Java8及以后:数组+链表+红黑树观看源码不要立即卡在细节中,而是要先过整体,了解程序的主要设计再来看细节。HashMap的put方法的逻辑HashMap如何有效减少碰撞扰动函数:促使元素位置分布均匀,减少碰撞几率;使用final对象,并采用合适的equals()和hasCode()...原创 2019-03-08 10:44:35 · 119 阅读 · 0 评论 -
ConcurrentHashMap
如何优化Hashtable通过琐细粒度化,将整锁拆解成多个锁进行优化;早期实现CAS+synchronized使锁更细化put方法的逻辑三者区别原创 2019-03-08 11:13:51 · 111 阅读 · 0 评论 -
J.U.C简单了解
前言java.util.concurrent:提供了并发编程的解决方案。J.U.C分类原创 2019-03-08 11:37:27 · 441 阅读 · 0 评论 -
Java的IO机制
BIO、NIO、AIOBIONIOAIO三者对比原创 2019-03-08 12:03:36 · 249 阅读 · 0 评论 -
Java垃圾回收机制
对象被判定为垃圾的标准:没有被其他对象引用判定对象是否为垃圾的算法引用计数算法(非主流)判断对象的引用数量判断对象的引用数量来决定对象是否可以被回收;每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1;(完成指值改变或生命周期过期);任何引用计数为0的对象实例可以被当做垃圾收集;**优点:**执行效率高,程序执行受影响较小;**缺点:**无法检测出循环引用的情况...原创 2019-03-04 11:46:34 · 136 阅读 · 0 评论 -
Java内存模型常考题
JVM三大性能调优参数 -Xss:规定了每个线程虚拟机栈(堆栈)的大小;(一般256K足够了,影响Java线程的多少) -Xms:堆的初始值; -Xmx:堆能达到的最大值;(一般设置为何上面一个相同大小的值,防止heap不够用发生内存抖动)内存分配策略 静态存储:编译时确定每个数据目标在运行时的存储空间需求; 栈式存储:数据区需求在编译时未知,运行时模块入口前确定...原创 2019-03-04 10:05:02 · 412 阅读 · 0 评论 -
source error getPropertyValue
错误提示如下:这个是今天上午更新了队友的代码之后启动service就出现的错误,首先这个错误提示非常不好,没有说明错误的位置或详细的原因。网上百度到有两种可能:dubbo版本错误或者是存在getXXX() 的方法被错误识别。搞了半天,最后有个队友发现原因是:dubbo暴露服务的时候把它当成获取属性方法来编译,然后出现类型转化报错。ubbo动态生成代码return ($w) w.getFilterR...原创 2018-02-28 14:14:32 · 1120 阅读 · 1 评论 -
Java中通过实例得到实体类中的属性和属性值
方式一(实体类):1234567//java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for (Field field : model.getClass().getDeclaredFields()) { field....转载 2018-03-14 14:21:48 · 3531 阅读 · 0 评论 -
java GC常见面试题
Object的finalize()方法的作用是否与C++的析构函数作用相同与C++的析构函数不同,析构函数调用确定,而它的是不确定的将未被引用的对象放置于F-Queue队列;当垃圾回收器宣布一个对象死亡,至少需要经过两个阶段,1.当对象进行可达性分析时发现没有和GC ROOTS相连接就会被第一次标记;2.判断对象是否覆盖finalize(),如果覆盖,并且未被引用过这个方法的对象就会被放在F...原创 2019-03-05 17:20:09 · 9298 阅读 · 0 评论 -
多线程之进程和线程的区别
进程和线程的区别 进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。 线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。 一个程序至少一个进程,一个进程至少一个线程。进程是资源分配的最小单位,线程是CPU调度的最小单位进程和线程的由来...原创 2019-03-05 17:48:39 · 422 阅读 · 0 评论 -
java多线程基础 一
线程的start和run的区别调用start()方法会创建一个新的子线程并启动;run()方法只是Thread的一个普通方法调用;Thread 和Runnable的关系Thread是实现了Runnable接口的类,使得run支持多线程;因类的单一继承原则,推荐多使用runnable接口如何给run()方法传参构造函数传参;成员变量传参;回调函数传参;如何实现处理线...原创 2019-03-05 22:49:45 · 151 阅读 · 0 评论 -
java多线程基础 之synchronized和线程池
线程安全问题的主要诱因存在共享数据(也称为临界资源);存在多条线程共同操作这些共享数据;解决问题的根本方法 同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作。互斥锁的特性互斥性即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制,这样在同一时间只有一个线程对需要同步的代码块(复合操作)进行访问。互斥性也称为...原创 2019-03-06 10:38:50 · 665 阅读 · 0 评论 -
Spring简单了解
如何选择框架对应的开发者社区是否有名、是否活跃;框架的模块是否不断迭代;IOC原理IOC(inversion of control):控制反转spring core最核心的部分;需要先了解依赖注入(Dependency Inversion)DI举例:设计行李箱常规设计:如上图设计思想,假如设计完成后需要修改轮子,那后面全得改。修改成size动态可变的:依赖注入设...原创 2019-03-08 16:16:55 · 155 阅读 · 0 评论 -
Java 基础
对Java的理解平台无关性GC语言特性面向对象类库异常处理平台无关性为什么需要先编译成字节码再解析成机器码字节码避免了每次都需要进行语法校验等准备工作;增加了平台的兼容性(其他语言转换成字节码也能在JVM上运行)。JVM如何加载.class文件JVM就是内存中的虚拟机。反射 Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对...原创 2019-03-03 18:38:37 · 174 阅读 · 0 评论 -
Java内存模型
JVM内存模型 0:将int值0压入操作数栈中,入参为1和2,局部变量为1和2; 1:将0 pop出操作栈到局部变量中 2:将局部变量1压入栈中 3:将局部变量2压入栈中 4:将栈中的1和2弹出进行运算将结果压入栈顶; 5:将3 pop出到局部变量中 6:将局部变量3压入栈顶 7:返回栈顶的3递归引起StackOverflowError的原因 递归过...原创 2019-03-03 23:36:30 · 117 阅读 · 0 评论 -
(转)正确理解Thread Local的原理与适用场景
Java进阶(七)正确理解Thread Local的原理与适用场景发表于2017-12-19|更新于2017-12-19|分类于java|评论次数14|阅读次数20433|字数8,086本文结合实例介绍了 Thread Local 的原理与实现方法,并分析了其适用场景。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自...转载 2019-03-13 10:02:26 · 168 阅读 · 0 评论