随笔分类 - java基础
摘要:今天在测试一个功能时,出现了java.lang.ArrayStoreException异常,查看该异常的源码,有如下一段描述,简单来说就是在数组中存放了错误类型的数据, 这里也举了个例子,在String类型的数组中存放了一个Integer类型的数据,则会出现ArrayStoreException 经
阅读全文
摘要:break 1、结束switch2、结束当前的循环语句,比如for,while 3、结合标记使用,作用于双层循环的外层循环 如下demo输出结果为外层和内层循环交替输出 public static void testBreak() { for (int i = 0; i < 3; i++) { Sy
阅读全文
摘要:首先看如下测试例,预期结果为:1,2,3,4四个数字都会输出 @Test public void testThread() { Thread t = new Thread() { @Override public void run() { logger.info("1"); try { Thread
阅读全文
摘要:今天碰到个java参数传递的问题,记录一下 下面为测试代码: 如果不太了解java是值传递还是引用传递,可能会觉得main方法中的logMsg输出的结果为ab,但其实真实输出的为b;究其原因,就是java是通过值传递而不是引用传递的,这里调用test方法,传递的为logMsg的地址值,而不是logM
阅读全文
摘要:无论是foreach,还是iterator,在遍历时,修改实体对象的引用地址都是无效的 foreach: List<User> userList = new ArrayList<>(); userList.add(new User("ming", 11)); for (User user : use
阅读全文
摘要:https://www.cnblogs.com/qq931399960/p/15555152.html中的实现,无论是join还是futuretask都会阻塞主线程,影响效率 JDK8出现了一个新的类CompletableFuture,可以很容易的实现异步回调,使用该类实现订餐外卖 private
阅读全文
摘要:在如下笔记中提到,无论是join还是FutureTask都会阻塞主线程,无法实现真正的异步处理 https://www.cnblogs.com/qq931399960/p/15555152.html Guava可提供了一种异步回调方案,不会阻塞主线程,Guava中添加了几个相关接口 FutureCa
阅读全文
摘要:假设有如下逻辑,实现快递员取餐后送餐: 外卖平台发布客户订餐消息,商家开始备货,同时快递员抢单 1、商家:起锅烧油,炒菜,盛饭,打包 2、快递员:抢单,规划路线,赶路,到店 Join实现 Thread merchant = new Thread() { @Override public void r
阅读全文
摘要:错误日志 10-27 07:02:10.948 [QuartzScheduler_quartzScheduler-NON_CLUSTERED_MisfireHandler] INFO - Handling 1 trigger(s) that missed their scheduled fire-t
阅读全文
摘要:IO读写依赖于底层的read和write两大系统的调用。 read系统调用是把数据从内核缓冲区复制到进程缓冲区,write系统调用是把数据从进程缓冲区复制到内核缓冲区。内核缓冲区的数据写入到磁盘是由操作系统内核完成,底层操作系统会对内核缓冲区进行监控,等待缓冲区达到一定数量的时候,在进行IO设备的中
阅读全文
摘要:问题 假设现在有个计算公式如下 public static void getResult(int total, int pbd, int ag, int num) { double cl = 10 * Math.log10(pbd); double txg = 10 * Math.log10(num
阅读全文
摘要:如果程序挂死,有时使用jstack查看进程中线程信息时,需要添加上-F参数,此时如果有死锁信息,则可能不会打印出死锁堆栈信息,使用jdb则可以查看当前死锁线程的运行堆栈。 如下模拟一个简单的死锁程序 获取pid 假设当前不能直接连接27709虚拟机,需要使用参数-F 可以看出造成死锁的线程未t-1和
阅读全文
摘要:VisualVM通过密码连接JVM实例如下 https://www.cnblogs.com/qq931399960/p/10960573.html 虽然设置了密码,但还是不够安全,只要获取到密码,在任何机器上都可以连接JVM。所以需要使用到SSL,SSL需要提供证书才能访问,安全性较高 一、生成证书
阅读全文
摘要:如果本地安装了JDK,则在${java.home}/bin/下可找到jvisualvm.exe,双击打开即可使用。否则,去官网下载一个,解压即可使用。现有一个springboot程序springbootdemo.jar,使用JDK中jvisualvm的JMX方式监控该JVM 一、查询hostname
阅读全文
摘要:LinkedList实现了List,Deque,Cloneable,Serializable接口,具有集合,队列,克隆以及序列化功能。使用泛型在编译期提早发现类型错误。 LinkedList使用私有内部类Node保存集合中元素的信息,本例分析一些主要的方法,比如add方法,其方法内部调用了linkL
阅读全文
摘要:Linkedlist是一个集合容器,具有增删改查基本功能,本例中模拟增删查,对于修改,只需要将原节点处的val更新为新值即可,增加和删除在链表中速度是比较快的,查找,修改慢,因为要从头或者从尾开始遍历。自定义的linkedList名称为yLinkedList。 类似于ArrayList中需要有一个数
阅读全文
摘要:线程创建和销毁会消耗很多的资源,当我们创建线程时,会发现cpu利用率很高,为了节省资源的使用,使用线程池是一个比较好的选择,当有任务需要执行时,随机分配给一条线程去执行,也可以删除任务,获取任务数量等。下面使用springboot构建一个简单的线程池。 自定义线程池 package com.demo
阅读全文
摘要:Synchronized常用三种使用方式 1、修饰普通方法:锁对象即为当前对象 2、修饰静态方法:锁对象为当前Class对象 3、修饰代码块:锁对象为synchronized紧接着的小括号内的对象 一、验证修饰普通方法时锁对象 现象:先逐行输出mythread1,线程1:RUNNABLE,线程2:B
阅读全文
摘要:反码,补码 将正数各个位取反,1变为0,0变为1所得二进制位反码,将反码+1所得到的二进制数为补码,补码为该正数在计算机中存储的负数形式,如,4在int类型占用4个字节32位,其原码,反码及补码如下 通过代码验证-4的二进制形式与上述补码一致 无符号整数与有符号整数 无符号整数的所有位均表示数字,有
阅读全文
摘要:字符串是一种在开发中经常使用到的数据类型,对字符串的处理也变得非常重要,字符串本身有一些方法,但都没有对null做处理,而且有时可能还需要做一些额外处理才能满足我们的需求,比如,要判断某个字符串中是否包含字符串a或者字符串ax,使用自带的字符串方法,我们可能要这么写 使用commons-lang3工
阅读全文

浙公网安备 33010602011771号