java基础
安静的夜灬
技术在于折腾并且乐在其中
展开
-
java8之java.util.function的基本使用
本次使用java.util.function.Consumer;java.util.function.Function;java.util.function.Predicate;java.util.function.Supplier;借助redis做一个简单的分布式锁。废话不多说,直接上代码,如果想了解java.util.function自己去百度吧,大都说的非常清楚,我就在这废话了。...原创 2020-04-11 17:19:37 · 1131 阅读 · 0 评论 -
发布jar到maven中央仓库
最近写了一个开源组件,想发布到maven仓库直接使用。在此记录一下每一步的操作过程:1、在这个网站注册一个账户sonatype账户名和密码需要记一下,不能忘了2、点击新建,创建一个新的问题,依次填入项目的信息下面是填入信息的参考:项目:Community Support - Open Source Project Repository Hosting (OSSRH)问题类型:New...原创 2020-04-11 17:09:41 · 392 阅读 · 2 评论 -
查看jvm中的动态class
最近在研究动态class的相关特性问题,经常需要查看正在运行的java程序中动态生成的class文件,以下是查看方式。一、必要的工具jdk:windows下 jdk7及以上、liunx下 jdk6及以上说明:HSDB是sun官方推出的一个java虚拟机debug的工具,liunx下jdk6自带了,windows下jdk7自带了。这个工具可以做很多事情,有兴趣的自己去学学吧,可以见识到j...原创 2019-07-24 20:56:16 · 813 阅读 · 0 评论 -
使用asm创建动态class
asm不是一个新的东西,javaee领域的开源框架都有asm的用武之地。准确来说 asm是用来操作字节码的,源代码是java编写。asm官网https://asm.ow2.io/index.htmlasm的使用稍微复杂,需要了解字节码。我强烈建议从事java开发的同学必须会asm的基本操作,这会让你非常容易接近jvm的编译指令,类加载等原理上的东西,便于更好的理解jvm与java特性。...原创 2019-07-11 10:32:38 · 783 阅读 · 0 评论 -
使用java基础包开发一个简化版springmvc框架
这个项目是3年前的,记忆尤深,刚刚接触springboot一个月(事实上是刚进一家公司,闲着没事干),发现非常多的功能都是那么容易的实现,于是乎想能否自己实现一个mvc,保持springmvc的使用风格,于是花了接近1个多月的时间写了这个项目,期间收获非常多,建议3年以下的的java同学可以参考。此框架参考了一个大型的电商系统框架源码(很老的项目基于Servlet)项目地址https://g...原创 2019-06-29 09:53:33 · 181 阅读 · 0 评论 -
java之CachedThreadPool
这是大名鼎鼎的java4大线程池之一,具有以下特性是一个可以无限扩大的线程池; 比较适合处理执行时间比较小的任务; corePoolSize为0,maximumPoolSize为无限大,意味着线程数量可以无限大; keepAliveTime为60S,意味着线程空闲时间超过60S就会被杀死; 采用SynchronousQueue装等待的任务,这个阻塞队列没有存储空间,这意味着只要有请求...原创 2019-07-10 10:01:56 · 1062 阅读 · 0 评论 -
java是什么?
看到这个标题,一定认为这是一篇水文,其实也没有那么水,算是一篇大众科普文吧。进入正题一、介绍javajava是一门编程语言,最早由sun进行研发,研发的初衷是解决c和c++在底层操作并且进行编码的一些问题,当然也包括面向对象编程,所以java被设计成跨平台、可移植。其中有很长一段故事,有兴趣的自己去查阅相关资料。二、sun jdk众所周知,java运行在jvm虚拟机上,其中虚拟...原创 2019-07-03 08:04:24 · 2425 阅读 · 0 评论 -
2张图告诉你jvm内存模型
相关博文推荐https://www.cnblogs.com/SaraMoring/p/5713732.html欢迎关注我的个人公众号原创 2019-06-21 13:35:09 · 201 阅读 · 0 评论 -
java虚拟机的一些内存监控
内存溢出之后,分析原因往往有些困难,这里在启动jvm的时候可以增加一些参数,等内存溢出发生时jvm会帮我们记录当时的快照这是我模拟内存溢出的启动参数:-Xmx64m -Xms32m -Xmn16m -Xss8m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/liucheng/开发/vm/VMDemo.hprof -XX:On...原创 2018-05-05 17:56:02 · 2538 阅读 · 0 评论 -
java内存溢出的2种情况
java程序员在面试经常被问到内存om之后如何处理,但是实际在工作中遇到此类问题的情况却又非常少。进过自己一番总结内存溢出主要分为2种:一、堆内存溢出 OutOfMemoryError从jvm的角度看发生的情况是:1、动态扩展的栈内存无法满足内存分配。2、建立新的线程没有足够内存创建栈。从编码角度看发生的情况是: 1、内存中加载的数据量过于庞大,如一次从数据库取出过多数据;...原创 2018-05-05 16:54:07 · 1300 阅读 · 0 评论 -
java基础之创建对象的方式
一星期前我只知道2种方式创建对象,第一种是new 第二种是反射,后来遇到了个蚂蚁金服面试,牛B的大神问我java创建对象的方式有几种,瞬间进了坑。这里引用了一个哥们的文章http://www.cnblogs.com/wxd0108/p/5685817.htmljava创建对象有5种方式:1、new,最常见的方式 Test t=new Test();2、使用Class类反射: ...原创 2017-03-03 18:43:32 · 359 阅读 · 0 评论 -
java线程基础
一、什么是线程线程在某些场合可以当做轻量级进程来理解,是程序执行的最小单位(是系统调度和分派的基本单位),线程本身是由唯一id、当前指令针、寄存器集合、堆栈组成。线程是进程中的一个实体,线程本身除运行资源外,不拥有其他系统资源,但是可以与同一个进程组的其他线程共享资源,线程之间是相互制约的,呈现出间断性。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。二、线程的状...原创 2017-03-03 14:03:16 · 219 阅读 · 0 评论