java基础
文章平均质量分 76
初露寒秋
蓝色性格。保持感性的思绪和触动,贯彻理性的内涵和想法。孤灯烟影,初露寒秋
展开
-
java agent 类加载器加载父子类问题实例分析
在使用javaagent实现微服务间调用关系时,难点之一就是类加载问题:不同的classLoader(类加载器)加载父子class类时所产生的问题,如问题场景1、ClassNotFoundException问题问题场景2、NoClassDefFoundError问题问题场景3、java.lang.IllegalAccessError: tried to access field x.xx.XXX from class x.yy.ZZZ问题 本质都是class loader加载class的问题通过原创 2022-02-19 23:24:12 · 1699 阅读 · 7 评论 -
ThreadPoolExecutor系列说之由浅入深源码解说
本文将ThreadPoolExecutor高深的位运算转换为二进制,以便更直观的理解方法和属性的使用。对加入线程池,执行worker的线程,释放worker的线程,终止线程池等进行细致的理解,以求每个判断,每行代码都能理解。Doug Lea的ThreadPoolExecutor代码实现真的是我们学习的榜样属性NOTE: 代码中的位运算不好直观,我们学习时可以将他们转成十进制和二进制,直观便于理解。使用以下方法操作进制间的转换1、二进制 -> 十进制 Integer.parseInt(“00111原创 2021-12-04 19:11:26 · 1317 阅读 · 0 评论 -
不知道javaagent是什么,运行个hello world就知道了
从事java开发的同学,或多或少听说过java探针/javaagent这个术语。本文不说它的定义,不说它的原理,不说它的高大上的作用,只说它的"hello world"。即运行一个最简单的例子,实际看看效果,有了真切的感受后,产生真切清晰的认识,以便快速的入门和深入探索。编码用idea创建个maven项目,如下图,项目名称随意,这里我的项目名为:microservice-comb-javaag...原创 2020-03-13 21:13:31 · 312 阅读 · 0 评论 -
java synchronized详解--synchronized代码块
synchronized详解回想起来,代码中一直用synchronized了,但是好像对它理解不到位,今天抓点时间复习一下。写了几个代码例子说明一下。结构简述:定义了一个资源PrintDemo,一个线程类ThreadDemo,一个测试类TestThread,在测试类中创建两个线程对象,两个线程对象都通过run方法访问资源PrintDemo.printCount方法第一种场景:不对资源加锁packag原创 2017-02-17 11:48:03 · 2042 阅读 · 0 评论 -
synchronized详解-锁的是对象还是代码?
对于提干的问题,如果你没有想过这个问题,那么现在就要想一下了,因为他对于真正理解synchronized很重要。先把答案公布了:synchronized锁的是对象下面用代码证明结论: private static void startModifyThread(final List list) { Thread modifyThread = new Thread(new Runnable(原创 2017-02-18 18:35:34 · 781 阅读 · 0 评论 -
java Fork/Join多线程发送短信
使用Fork/Join多线程框架实现批量发送短信import java.net.URLEncoder;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.concurrent.ExecutionException;import java.util.concu原创 2016-07-16 20:27:43 · 1680 阅读 · 0 评论 -
java 正则表达式
public static final String EMAIL = "^[A-Za-z0-9][\\w\\-\\.]{1,60}@([\\w\\\\-]+\\.)+(info|biz|com|edu|gov|net|am|bz|cn|cx|hk|jp|tw|vc|vn)$"; public static void main(String[] args) { regexEmai原创 2016-07-01 16:58:01 · 1111 阅读 · 0 评论 -
response乱码的问题及setCharacterEncoding()与setContentType()区别
这里我们输出的是"Hello World"英文,使用浏览器去访问的时候是没有乱码问题,下面我们在将代码改写一下,[java]view plaincopyresponse.getOutputStream.write("中国".getBytes("utf-8"));这时候我们使用浏览器去访问数据的时候,当然我们可能会看到"中国",也转载 2015-03-10 17:51:52 · 11184 阅读 · 10 评论 -
java 代码审核的重要性
越发的注意到代码审核的重要性 越是大的,时间跨越很久,经手人数多的项目,代码审核的重要性越明显。 今天领导给我一个小任务,让我查一下几个sql语句,结果我查了半天啊,原因就是我得跟踪查询条件,而这些个条件真是一个乱啊,各种sql语句拼接,还有赋值,没写三条代码呢,就是一个execute(sql),每个rs数据又放在list中,list又放在每个map中,map又根据原创 2015-03-02 16:45:03 · 2270 阅读 · 5 评论 -
java/js正则表达式(一些常用的)
var myreg3 = /^1\d{10}$/; //alert("请输入合法的手机号码!"); var myreg4 = /^[0-9|\-]{7,20}$/; //alert("请输入合法的电话号码!"); var myreg2 = /^[0-9]{6}$/; //alert("请输入合法的邮政编码!"); var paForPh = /^1[3|4|5|8][0-9]\d{原创 2015-03-02 16:41:13 · 384 阅读 · 0 评论 -
java发送邮件
import javax.mail.*; public class MyAuthenticator extends Authenticator{ String userName=null; String password=null; public MyAuthenticator(){ } public原创 2015-03-02 16:39:27 · 719 阅读 · 0 评论 -
Java 8: 异步利器 CompletableFuture vs Parallel Stream 选哪个
应人们对性能和体验的要求,异步在项目中用的越来越多,CompletableFuture 和Parallel Stream无疑是异步并发的利器。既然两者都可以实现异步并发,那么带来一个问题:什么时候该使用哪个呢,哪个场景下使用哪个会更好呢?这篇文章因此出现,旨在当执行异步进行编程时CompletableFuture与Parallel Stream的比较,从而你可以由此知道什么场景下使用哪个...翻译 2018-08-16 09:22:10 · 5625 阅读 · 0 评论 -
java return break continue一个方法说明白区别
忽略基础好像是很多人的共性,要想路走的远,走的稳。重视基础,从现在开始用一段代码说明return break continue之间的区别 public static void main(String[] args) { testBreakAndReturn(10); } public static void testBreakAndReturn(i...原创 2018-09-01 08:20:21 · 2029 阅读 · 0 评论 -
java synchronized详解--synchronized方法
上一章讲了synchronized代码块,这章说一下synchronize方法,及synchronized代码块与synchronized方法的联系上一章说的synchronized代码块,主要说了synchronized锁旗标(锁参数)的重要性和注意项 这章说一下synchronized修饰的方法的关键点和注意项 如果你拜读了java官方文档,你会知道synchronized方法也有锁旗标(锁原创 2017-02-17 17:25:37 · 1591 阅读 · 0 评论 -
java8新特性
java8新特性引言:java是个大体积的东东,实现一个功能往往需要编写很多行代码,这使得程序员在集中业务的同时还要关注代码,现在python很好的解决了这个问题。java自身认识到了这个问题,积极的解决方案。Java 8是一个有重大改变的版本,该版本对 Java 做了重大改进。本文通过文字描述及代码实例对新版本中主要新特性做了介绍:函数式接口、Lambda 表达式、集合的流式操作、注解、安全性、原创 2017-01-18 11:45:56 · 756 阅读 · 0 评论 -
深入理解Java 8 Lambda-语言篇
最近在github.io上发现一篇讲解java8 lambda非常好的文章,但是最近这个文章的页面服务地址不稳定,所以转载下来,如果造成原作者的不满和任何的反对,请告知,我立即处理原文地址:http://lucida.me/blog/java-8-lambdas-insideout-language-features/#more深入理解Java 8 Lambda(语转载 2017-02-06 14:27:02 · 1520 阅读 · 0 评论 -
java基础for循环一个细节
对比getArraySort和getArraySort2方法,观察不同点public class TestArraySort { public static void main(String[] args) { int[] a = new int[]{34,8,64,51,32,21}; int[] a1 = {34,8,64,51,32,21}; int[] returnA原创 2015-03-02 16:20:56 · 1172 阅读 · 0 评论 -
String刨根问底
引言在java编程中,几乎每天都会跟String打交道,因此,深入理解String及其用法十分有必要。下面分三方面来详细说明下String相关的特点及用法Immutable(不可变)特性连接符号+的本质相等判断两种方式(==/equals)说明一、 Immutable特性 Java设计人员为了方便大家对字符串的各种操作,抽象出String类,该类封装了对字符串的查转载 2015-03-02 11:01:23 · 761 阅读 · 0 评论 -
java List转换为字符串并加入分隔符的一些方法总结
// 方法一: public String listToString(List list, char separator) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.size(); i++) { sb.append(list.get(i)).append(separator); }转载 2015-04-22 15:40:07 · 16976 阅读 · 1 评论 -
Arrays.asList()参数不同,返回的数据不同的原因?
public class CollectionTest { public static void main(String[] args) { //List list = new ArrayList(); int[] a = {1,11,111}; String[] b = {"a","aa","aaa"}; List li原创 2015-10-16 11:48:08 · 848 阅读 · 0 评论 -
关于BigDecimal的四舍五入和截断
关于四舍五入:ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1BigDecimal a = new BigDecimal(1.5); System.out.println("down="+a.setScale(0,BigDecimal.ROUND_HALF_DOWN)+"\tup转载 2015-05-05 11:16:51 · 9713 阅读 · 0 评论 -
java四舍五入与截取
System.out.println(Math.floor(24.335*100)/100); //直接截取 24.33System.out.println((int)Math.floor(23.45)); //截取整数 23System.out.println((int)Math.ceil(23.2));原创 2015-10-19 17:40:35 · 684 阅读 · 0 评论 -
ArrayList删除元素(remove())报错的原理与解决办法
作为Java大家庭中的集合类框架,List应该是平时开发中最常用的,可能有这种需求,当集合中的某些元素符合一定条件时,想要删除这个元素。如:[java] view plaincopyprint?public class ListTest { public static void main(String[] args) {转载 2015-10-21 11:25:29 · 14312 阅读 · 1 评论 -
ReentrantLock.tryLock()方法简说
import java.util.concurrent.locks.ReentrantLock;public static ReentrantLock smsLock = new ReentrantLock();//tryLock方法作用:此时访问这个方法的线程等待timeout秒,如果在timeout秒内上一个线程没有执行完,方法返回false;上一个线程执行完,方法返回true原创 2015-10-21 18:25:06 · 4562 阅读 · 0 评论 -
java及javaweb实用的第三方API方
1.CollectionUtils.isNotEmpty(Collection changeUsers)功能:判断changeUsers是否为null或[]所属jar包:commons-collections-3.2.1.jar原创 2016-03-03 14:14:25 · 1868 阅读 · 0 评论 -
java Collection集合删除某一元素方法汇总
无论在自己写程序玩还是实际项目应用中,操作java.util.Collection结合都是最常用的,而且也是最重要的知识点。从集合中删除某一元素同样是很常用的操作,对了,面试中也总考察,面试官说要考察你的实际编程的能力,谁知道呢。下面总结了从集合中删除某一元素的几种方法package test;import java.text.MessageFormat;import java.util原创 2016-09-13 11:22:32 · 10531 阅读 · 7 评论 -
深入理解Java 8 Lambda-类库篇
最近在github.io上发现一篇讲解java8 lambda非常好的文章,但是最近这个文章的页面服务地址不稳定,所以转载下来,如果造成原作者的不满和任何的反对,请告知,我立即处理原文地址:http://lucida.me/blog/java-8-lambdas-inside-out-library-features/深入理解Java 8 Lambda(类库篇——S转载 2017-02-06 14:32:00 · 2377 阅读 · 0 评论 -
Arrays.asList(param)方法中param的不同,方法的返回值不同的实例分析
当Arrays.asList(param)的param参数是基本类型的数组时,方法返回值的size总是1当Arrays.asList(param)的param参数是基本类型对应的对象类型的数组时,方法返回值的size是我们期待的结果当Arrays.asList(param)的param参数是String类型的数组时,方法返回值的size是我们期待的结果当Arrays.asList(param)的param参数是自定义对象类型的数组时,方法返回值的size是我们期待的结果原创 2015-01-14 16:22:47 · 1073 阅读 · 0 评论