
java基础
文章平均质量分 59
bin_coder
不要放弃,坚持、坚持、再坚持
展开
-
switch 优化
switch 优化if-else源代码public class IfElseDemo { public static void main(String[] args) { int a=1; if(a==1){ System.out.println(1); }else if (a==2){ System.out.println(2); }else if(a==3) {原创 2022-05-22 22:47:56 · 452 阅读 · 0 评论 -
JAVA垃圾回收器你必知必会的知识
JVM GC 预览以下大部分知识来源于《深入理解JVM虚拟机-第3版》总览图3种分代假说弱分代假说:90%的对象都朝生夕灭的强分代假说:熬过多次垃圾回收的对象一般都是难以消亡的跨代引用假说: 跨代引用相对于同代引用来说是仅占少数的2种判断垃圾的策略引用计数法:无法解决循环引用的问题根可达算法:从GC Root查找对象是否可达(目前java都是用这种方式来判断对象是否存活的)哪些可以作为GC Root对象在虚拟机栈中引用的对象(本地局部变量表中对象),参数、局部变量、临时原创 2022-03-15 22:25:11 · 568 阅读 · 0 评论 -
ScheduledThreadPoolExecutor 源码分析
ThreadPoolExecutor及相关的类,在上一篇文章已经分析过,这篇文章主要分析ScheduledExcecutorService接口和ScheduledThreadPoolExecutorScheduledExcecutorServicepublic interface ScheduledExecutorService extends ExecutorService { // 提交一个任务在延迟一段时间后执行 public ScheduledFuture<?&g.原创 2022-03-06 16:03:03 · 269 阅读 · 0 评论 -
java程序员有空可以阅读的书籍
计算机基础《编码:隐匿在计算机软硬件背后的语言》《深入理解计算机系统》C语言书籍《C程序设计语言》《C Primer Plus》数据结构和算法比较简单《Java数据结构与算法》《算法》比较难《算法导论》《计算机程序设计艺术》操作系统《Linux内核源码解析》《Linux内核设计与实现》《30天自制操作系统》网络《TCP/IP详解》编译原理《编译原理》《编程语言实现模式》数据库SQLite源码Derby - JDK自带数据库...原创 2020-08-09 23:06:36 · 149 阅读 · 1 评论 -
高性能专题
JDK多线程核心原理多线程原理基础java程序运行原理分析图片参考:https://www.processon.com/view/link/5e586f5fe4b069f82a16e8a0线程状态package com.xbin;public class ThreadTest { private static final Object object=new Object(); private static final Object object2=new Object();原创 2020-06-07 18:17:50 · 539 阅读 · 0 评论 -
你真的NIO网络编程吗?你会使用NIO连接百度服务器吗?
背景:使用NIO连接百度,并获取返回结果。package cn.tk.myproject.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SocketChannel;/** * 使用NIO访问百度...原创 2020-04-13 21:45:22 · 266 阅读 · 0 评论 -
教你JAVA性能调优的方向?
JVM参数及调优调优基本概念在调整性能时,JVM有三个组件:堆大小调整垃圾收集器调整JIT编译器大多数调优选项与调整堆大小和为您的情况选择最合适的垃圾收集器有关。JIT编译器对性能也有很大影响,但是很少需要使用较新版本的JVM进行调优。通常,在调优JAVA应用程序是,重点是以下两个主要目标之一:响应性:应用程序或系统对请求的数据进行响应的速度,对于专注于响应的应用程序,长的...原创 2020-04-10 22:37:05 · 339 阅读 · 0 评论 -
OutOfMemoryError ,你知道几种?
OutOfMemoryError–Java heap space问题代码中试图向JVM申请内存空间,但是没有足够的空间。注意:机器的物理空间足够,但是JVM的堆大小限制,也会导致出错。原因分析最直接的原因就是你配置的堆内存太小,或者你的机器内存不够。用户量请求量或者书籍处理量上来后,程序所需的资源,远远大于平常,导致JVM堆内存不够用。内存泄漏,不知情的情况下,内存被某些功能中的对...原创 2020-04-10 22:14:12 · 734 阅读 · 0 评论 -
JAVA的调优基础
类加载机制运行时数据区JVM用来存储加载的类信息,常量,静态变量,编译后的代码等数据虚拟机规范中这是一个逻辑划分。具体实现根据不同虚拟机来实现。如:oracle的HotSpot在方法区放在永久代,JAVA8放在元数据空间,并且通过GC机制对这个区域进行管理类生命周期类加载器类加载器负责装入类,搜索网络,jar,zip,文件夹,二进制数据,内存等指定位置的一个java程序运行,最...原创 2020-04-10 20:41:49 · 187 阅读 · 0 评论 -
带你了解java的JUC的使用
J.U.C包内的原子操作封装类AtomicBoolean:原子更新布尔类型AtomicInteger:原子更新整型AtomicLong:原子更新长整型AtomicIntegerArray:原子更新整型数组里的元素AtomicLongArray:原子更新长整型数组里的元素AtoimcReferenceArray:原子更新引用类型数组里的元素AtomicInt...原创 2020-04-08 20:15:52 · 804 阅读 · 2 评论 -
JAVA线程安全,你真的知道吗?
线程安全–可见性java内存模型定义前面章节中的大部分讨论仅涉及代码得行为,即一次执行单个语句或表达式,即通过单个线程来执行。 JAVA虚拟机可以同时支持多个执行线程,若未正确同步线程的行为,线程的行为可能会出现混淆和违反直觉。本章描述了多线程程序的语义;它包含了,当多个线程修改了共享内存中的值时,应该读取到哪个值得规则。由于这部分规范类似于不同硬件体系结构的内存模型,因此这些语义称为ja...原创 2020-04-04 22:17:27 · 380 阅读 · 0 评论 -
哪些容易忽略的JAVA基础
JAVA运行时数据区分布图:运行时数据区的地址链接点击线程状态 public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a...原创 2020-04-03 22:36:26 · 188 阅读 · 0 评论 -
J.U.C包内的原子操作封装类
J.U.C包内的原子操作封装类AtomicBoolean:原子更新布尔类型AtomicInteger:原子更新整型AtomicLong:原子更新长整型AtomicIntegerArray:原子更新整型数组里的元素AtomicLongArray:原子更新长整型数组里的元素AtoimcReferenceArray:原子更新引用类型数组里的元素AtomicInt...原创 2020-03-17 23:07:18 · 261 阅读 · 0 评论 -
线程间通信方式及常用API
想要实现多线程之间的协同,如:线程执行先后顺序,获取某个线程执行的结果等等。涉及到多线程之间的互相通信,分为下面四类: 文件共享 网络共享 共享变量 JDK提供的线程协调API(suspend/rsume.wati/notify,park/unpakr) suspend/resume (已被JDK弃用),该方法容易引起死锁,死锁原因如下:/*** suspe...原创 2020-03-09 22:39:12 · 258 阅读 · 0 评论 -
java运行时数据区分布图
分布图原创 2020-03-09 22:26:15 · 357 阅读 · 0 评论 -
java中String的重载操作符(+)与StringBuilder的关系(Java编译器的优化)
1.学过C++的同学都知道,C++中的操作符是可以重载的;java的设计者认为这是比较“糟糕”的设计,所以只在java中保留的对字符串处理的+,+=重载操作符。2.String类是final,不可变类,对字符串的拼接是经常会在代码里出来的:如下代码package cn.demo;public class TestString { public static void mai...原创 2019-11-15 23:31:54 · 343 阅读 · 0 评论 -
java中BigDecimal的注意事项
1.推荐使用BigDecimal(String val)和static BigDecimal valueOf(double d)构造器创建对象。2.严禁使用BigDecimal(doubleval)构造器创建对象根据源码可以了解double d=0.1注入进去不一定会等于0.1...原创 2019-04-27 11:03:06 · 291 阅读 · 0 评论 -
List集合排序实体类实现Comparator接口和实现Comparable接口排序
package com.collection;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;/** * 容器排序 * @author 26920 * */public class TestList { ...原创 2018-10-25 17:51:42 · 1038 阅读 · 0 评论 -
for-earch迭代时的错误————java.util.ConcurrentModificationException
在使用list集合使用for——earch和iterator进行循环删除list集合中的内容是会报错。 package com.collection;import java.util.ArrayList;import java.util.List;/** * 探究list中迭代的错误 * @author 26920 * */public class forearch { ...原创 2018-10-19 17:38:04 · 357 阅读 · 0 评论