![](https://img-blog.csdnimg.cn/20190904234831628.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 56
weihubeats
开源框架Tlog贡献者,技术大多都源于生产实践,乐于分享.公众号:小奏技术
展开
-
java nio FileChannel堆内堆外数据读写全流程分析及使用(附详细流程图)
这里是小奏,觉得文章不错可以关注公众号小奏技术。原创 2024-05-27 09:36:49 · 446 阅读 · 0 评论 -
java利用jdk11和jdk15新特性零依赖优雅调用GPT-4o,附golang实现对比
这里是小奏,觉得文章不错可以关注小奏技术公众号。原创 2024-05-16 09:45:00 · 341 阅读 · 1 评论 -
结合idea聊聊System.getProperty和System.getenv()的区别
总的来说主要还是用的多。主要用于启动参数的获取。当然也可以通过获取到一些系统的参数比如等但是如果是利用kubernetes进行环境变量标签传递就需要额外处理,单独使用是获取不到的。原创 2024-03-13 09:45:00 · 563 阅读 · 0 评论 -
BitSet在阿里面试和RocketMQ中的应用
简单理解就是位图,类似BitMap。用来存储二进制位的类总的来说BitSet在一些特定场景使用还是非常节省内存高效的。原创 2024-03-02 09:45:00 · 267 阅读 · 0 评论 -
OkHttp学习及简单工具类封装
OkHtt官网OkHttp github工作中需要调用三方接口,请求参数一般为json,返回结果也为json使用版本 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artif...原创 2020-03-27 10:38:57 · 473 阅读 · 0 评论 -
Java日期工具类
package com.chinagas.common.utils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtils { public sta...转载 2019-04-24 16:58:21 · 481 阅读 · 0 评论 -
分享一份我整理的较全面的正则脑图笔记吧
原图高清链接点击这里吧原创 2021-07-08 22:32:27 · 84 阅读 · 0 评论 -
ApplicationContextUtils
package com.zou.job.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlAppl...原创 2019-07-07 21:11:20 · 3182 阅读 · 0 评论 -
Java生成唯一主键
一般有时候我们需要生成唯一主键id,如果数据库是mysql我们可以使用主键自增,如果是oracle我们可以创建触发器或者序列,如果不借助数据库我们也可以在java层面自己生成唯一主键。代码如下:/* 生成唯一主键 格式:时间+随机数 */ public static synchronized String genUniqueKey() { ...原创 2019-05-10 09:39:43 · 10638 阅读 · 2 评论 -
文件上传问题(详解)
搭建好Spring MVC基本配置后 做上传文件1. 在springmvc 配置文件中配置文件上传<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- set the...原创 2018-10-16 17:12:09 · 1330 阅读 · 0 评论 -
Java MD5工具类
MD5简介为什么使用MD5MD5算法具有以下特点:1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。2、容易计算:从原数据计算出MD5值很容易。3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。MD5的作用是让大容量信息在用数字签名软件签署私...原创 2018-12-20 15:38:04 · 2170 阅读 · 0 评论 -
JAVA学习导图、思维导图
网上搜集了java的学习思维导图,分享给大家。01.Java程序设计(基础)02.Java程序设计(专题)03.客户端网页编程04.Java Web表示层技术05.Oracle06.Hibernate07.MyBATIS08.Spring还有一幅java基础知识思维导图:具体忘记从哪里找到的这么好的资料,谢谢原作者。推荐几款思维导图制作工具...转载 2019-04-10 09:56:33 · 2724 阅读 · 0 评论 -
定了,JDK 19 功能集冻结,JDK官方终于支持协程了
此外,如果示例程序中的10000被更改为1,000,000,那么该程序将提交1,000,000个任务,创建1,000,000个并发运行的虚拟线程,并且(在足够的预热之后)实现大约1,000,000任务/秒的吞吐量。如果这个程序中的任务执行一秒钟的计算(例如,对一个巨大的数组进行排序)而不仅仅是休眠,那么增加超出处理器核心数量的线程数量将无济于事,无论它们是虚拟线程还是平台线程。将尝试创建10,000个平台线程,从而创建10,000个 OS 线程,程序可能会崩溃,这取决于计算机和操作系统。.........原创 2022-08-09 10:20:44 · 2042 阅读 · 1 评论 -
面试官:HashMap都背过,我们问个LinkedList吧
文章目录类UML图核心属性构造方法内部类Node核心方法分析队头添加元素 addFirst队尾添加元素添加元素添加单个元素 add添加集合 addAll删除指定下标元素删除指定元素当队列使用添加元素获取元素栈使用入栈出栈总结参考类UML图实现了Deque、Queue接口,所以可以当(双端)队列使用实现了List接口,可以当List集合使用和ArrayList相比,没有实现RandomAccess接口。所以随机访问元素速度较慢核心属性 /** * 元素个数 */原创 2022-04-09 15:14:40 · 1668 阅读 · 0 评论 -
字节码技术 Javassist的学习使用(动态加载接口实现类,AOP原理)
文章目录官网github作用简单使用案例依赖动态生成接口的实现对方法作代理增强官网https://www.javassist.org/githubhttps://github.com/jboss-javassist/javassist作用简单来说Javassist主要用于操作Java字节码,让我们操作字节码变得简单,可以在JVM加载类文件的时候去修改它。与其他字节码编辑器不同的是Javassist提供了两个级别的API,源代码级和字节码级。如果用户使用源级 API,他们可以在不了解 Java 字原创 2021-10-24 11:50:54 · 739 阅读 · 0 评论 -
使用Jmeter进行简单的压测
文章目录下载Jmeter并运行下载运行语言切换测试创建线程组添加http接口默认属性添加http请求添加结果树添加汇总报告执行压测结果树数据汇总报告数据添加http请求头下载Jmeter并运行下载下载地址分二进制和源代码压缩包,源代码我们还需要自己编译。这里我们使用二进制的,直接解压安装运行然后进入bin目录直接运行jmetersh jmeter这里直接双击可能运行不了终端会输出这么一堆警告,然后就出现gui界面警告的意思就是不要使用GUI运行压力测试,GUI仅用于压力测试原创 2021-07-17 18:25:12 · 532 阅读 · 1 评论 -
Java 常用位运算总结
分类<<左运算符, num << 1, 相当于 num * 2>>右移运算符, num >> 1,相当于num / 2>>>无符号右移,忽略符号位,空位以0补齐^按位异或&按位与|按位或~按位非常用的一些操作乘以2运算int mulTwo ( int n ) { //计算n*2 return n << 1 ;}除以2运算int divTwo ( int n ) { //负原创 2021-07-15 20:53:06 · 261 阅读 · 0 评论 -
生产都用jdk11了,我的知识还停留在jdk8(jdk9新特性分析)
文章目录背景JDK9新特性1. Factory Methods for Collections (JEP 269)2. Optional Class Enhancements3.Stream API EnhancementstakeWhile(Predicate) 和 dropWhile(Predicate)ofNullable(T t)iterate 方法总结背景目前生产和开发中使用的jdk版本已经是11了,而自己对虽然对jdk8之后的版本看过一些博客,对新特性有一些了解,但没有全面学习过,所以今天就原创 2021-07-11 09:46:58 · 820 阅读 · 0 评论 -
Java奇淫技巧:试试导入静态方法试试
在我们每次调用一个工具类静态方法,比如阿里的json解析,大致都是这样调用的 JSON.toJSONString("test");有没有什么办法能够直接这样调用呢? toJSONString("test");直接省略掉外部类的前缀去调用方法,这样看上去是不是舒服多了,一般这种方法都是自己类调用自己内部方法才可以。这种方式如何实现呢很简单,我们将外部的静态方法导入进来即可import static com.alibaba.fastjson.JSON.toJSONString;原创 2021-06-13 13:13:27 · 1150 阅读 · 1 评论 -
guava Multimap学习
背景有时候我们可能需要这样一种数据结构,k 为 一个Object,valuse 为一个集合。如果使用jdk自带的Map。处理起来是极为不方便的,需要如何处理呢?我们来看看 Map<Integer, List<String>> map = new HashMap<>(); String[] test = {"狄仁杰", "阿离", "小卤蛋"}; for (String s : test) { // 插入原创 2021-05-27 22:34:22 · 781 阅读 · 2 评论 -
JAVA8 List<List<Integer>> list中再装一个list转成一个list
List<Integer> collect = IntStream.range(1, 10).boxed().collect(Collectors.toList()); List<Integer> collect1 = IntStream.range(10, 20).boxed().collect(Collectors.toList()); List<List<Integer>> lists = new ArrayList..原创 2020-08-21 15:59:32 · 11618 阅读 · 1 评论 -
Java 8 Stream流练习
题目和答案均来自 Java8实战题目(1) 找出2011年发生的所有交易,并按交易额排序(从低到高)。(2) 交易员都在哪些不同的城市工作过?(3) 查找所有来自于剑桥的交易员,并按姓名排序。(4) 返回所有交易员的姓名字符串,按字母顺序排序。(5) 有没有交易员是在米兰工作的?(6) 打印生活在剑桥的交易员的所有交易额。(7) 所有交易中,最高的交易额是多少?(8) 找到交易额...原创 2020-03-22 23:13:08 · 1393 阅读 · 0 评论 -
Java8使用lambda遍历集合创建线程
@Test public void testMap() { //定义一个map Map<String, Integer> map = new HashMap<>(); map.put("阿离", 13888); map.put("韩信", 18888); map.put("李白", 88...原创 2019-11-29 14:19:14 · 1583 阅读 · 0 评论 -
java反射详解
1. 什么是反射:Java Reflaction in Action中的解释:反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变。通俗的讲就是反射可以在运行时根据指定的类名获得类的信息个人理解:就是我们对于创建对象我们除了通过 new关键字创建外,还能通过什么创建呢?private的属属性真的不能获取吗?反射就能做到打破这些所谓的规则反射和new创建对象谁的效率高?...原创 2019-10-27 00:43:53 · 517 阅读 · 0 评论 -
浅谈String是不可变的,那么String s = "aaa",为什么同样可以执行 s = "bbb"
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。问题: String s = "A...原创 2018-11-04 10:27:47 · 868 阅读 · 0 评论 -
JAVA字符串如何转换成数字(详解)
1.如果是纯数字字符串如 :“123456”则可以用一下方法:int number = Integer.valueOf("123456");2. 如果是单个字符或者字符串则需要先切开转换为char字符再转换 不然像上面直接转化会空指针异常 String a = "ABC"; //将String对象中的每一个下标位的对象保存在数组中 char...原创 2018-08-16 20:18:52 · 80798 阅读 · 2 评论 -
JAVA I O 通过服务器传输文件(简单的)
服务器代码public class Server { static String homePath = System.getProperty("user.dir"); static String filePath = homePath + File.separator + "bb.txt"; public static void main(String[] args) throws I...原创 2018-07-27 20:46:24 · 558 阅读 · 0 评论 -
JAVA简单的I O流聊天程序 无线程
服务器: public class Server2 { public static final int PORT = 10001; public static void main(String[] args) throws Exception { System.out.println("server start....."); ServerSocket ss = new Se...原创 2018-07-27 10:42:17 · 218 阅读 · 0 评论 -
JAVA I 0流 copy文档的几种方式
第一种 :不用缓冲,用BufferedReader 和BufferedWriterpublic class TextPath { public static void main(String[] args) throws Exception { //.获取当前工程文件路径,separator连接工程路径与abc.txt路径 File file = new File("." + Fi...原创 2018-07-25 21:27:42 · 216 阅读 · 0 评论 -
Scanner中 next 和nextLine的区别
测试代码public class Text { public static void main(String[] args) { Scanner input = new Scanner(System.in); String s = input.nextLine(); System.out.println(s); s = input.next(); Syste...原创 2018-07-25 21:05:14 · 351 阅读 · 0 评论 -
JAVA写一个简单的泛型方法比较Stirng、StringBuffer、StringBuilder处理字符串效率
public class Test { public static void main(String[] args) { System.out.println("String处理需要的时间 :" + testTime("abc")); System.out.println("StringBuffer处理需要的时间:" + testTime(new StringBuffer("abc")...原创 2018-07-24 19:16:04 · 389 阅读 · 0 评论 -
文件File中list()和listFile()方法的区别
测试代码如下public class TextPath { public static void main(String[] args) { File file = new File("."); String[] list = file.list(); for (String it : list) { System.out.print(it + " "); } ...原创 2018-07-25 20:07:47 · 6964 阅读 · 0 评论 -
String常用方法总结
都知道字符串在项目中用到的非常多,也非常灵活,所以今天就总结了一些项目中常用的字符串方法文章目录toLowerCasesubStringsplittoLowerCasetoLowerCasetoLowerCases是将String中的大写全部转化为小写,小写则不改变,具体事例如下: String s = &quot;MY NaMe Is Tom&quot;; System.o...原创 2018-12-18 19:07:50 · 551 阅读 · 0 评论 -
String s=new String(“abc“) 创建了几个对象(详解)
String s=new String("abc");首先我们来详细分析这条语句:String s , 这个语句声明一个类String的引用变量 s [我们常常称之为句柄],而对象一般通过new创建。所以题目中s仅仅是一个引用变量,它不是对象。new String(), 这里是通过new创建了一个String对象,放在heap(堆)中而“abc”呢,也是一个对象,不同的是放在pool...原创 2019-01-10 15:43:11 · 15177 阅读 · 7 评论 -
Map遍历的四种方式
1. for each 遍历原创 2019-07-21 23:26:53 · 519 阅读 · 0 评论 -
Java笔试题(附带详细知识点,持续更新)
java基础以下正确的是 (A)A. long l = 1024 B. float f = 2.0; C. int i = 8L; D. short s = 123456;解析:类型转换规则: 大转小,需要强制转换;小转大,直接转...原创 2019-06-24 22:51:15 · 637 阅读 · 0 评论 -
转换String三种方式比较:(String)、toString()、String.valueOf()
(String)这是标准的类型转换,将object转成String类型的值。使用这种方法时,需特别小心的是因定义为 Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。例:Object obj = new Integer(100); String s = (String)obj;在运行时将会出错:因为将Integer类型...原创 2019-03-13 16:18:47 · 3064 阅读 · 0 评论 -
java的三种随机数生成方式
随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:第一种:new Random()第二种:Math.random()第三种:currentTimeMillis()第一种需要借助java.util.Random类来产生一个随机数发生器,也是最常用的一种,构造函数有两个,Random()和Random(long seed)。第一个就是以当前...转载 2019-03-07 16:54:49 · 3424 阅读 · 0 评论 -
深入理解final关键字(详解)
提及final关键字都会想到一个常见的面试题就是:final、finally、finalize区别在这里我们来简单回忆一下这三者的区别,final: Final用于修饰类、成员变量和成员方法。final修饰的类,不能被继承(String、StringBuilder、StringBuffer、Math,不可变类),其中所有的方法都不能被重写(这里需要注意的是不能被重写,但是可以被重载,这...原创 2019-02-19 14:33:50 · 40630 阅读 · 16 评论 -
静态块、构造块有趣的代码示例深入理解
看下面代码public class StaticTest { { System.out.println("构造块"); } static { System.out.println("静态代码块"); } public StaticTest(int index) { System.out.println(...原创 2019-02-21 18:00:03 · 948 阅读 · 0 评论