
实习
文章平均质量分 57
wenbaoxie
哈哈哈哈
展开
-
序列化常见工具
什么是序列化和反序列化序列化:将对象转成二进制进行传输或者持久化反序列化:将二进制转成对象常见的序列化工具1. Java原生序列化 Serializable只要让类实现 Serializable 接口就行,序列化具体的实现是由ObjectOutputStream和ObjectInputStream来实现的。注意以下几个点:1、serialVersionUID 一定要自己写,不要省略,不然会导致无法序列化或者修改之后报错如下出现兼容性问题:java.io.InvalidClassExce.原创 2021-09-11 15:39:16 · 3368 阅读 · 0 评论 -
源代码中help GC的联想
今天在看AQS的源码时看到了这段代码,有个注释,写了help GC,联想到实习的时候,组内有同学将使用完的对象也置为了null,到底这个置为null就不需要GC了吗,其实和C/C++ 的free不一样,你置为了null可以在短时间内进行gc,并不是不需要gc就释放了。你有一个方法很长,里面定义了一个map对象,这个对象内存占用很大,如果该方法没有结束,那么这个map是无法进行回收的,此时如果想要在方法没有返回前回收这个没有用的map,就可以将map置为null来提前进行gc。java.util.conc原创 2021-09-06 17:00:06 · 681 阅读 · 2 评论 -
Docker 和k8s
DockerDocker比较虚拟机传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。Docker的本质Docker容器本质上是宿主机上的进程。Docker 通过namespace实现了资源隔离,通过cgroups实现资源限制,通过写时复制机制(Copy-on-write)实现了高效的文件操作。/* 定义一个给 clone 用的栈,栈大小1M原创 2021-07-12 20:13:09 · 251 阅读 · 0 评论 -
线程池相关
主池控制状态ctl是一个原子整数,打包了两个概念字段workerCount,表示有效线程数runState,表示是否正在运行,正在关闭等为了打包成一个int,我们限制workerCount为(2^29 )-1(约 5 亿)个线程而不是 (2^31)-1(20 亿)个其他可表示的线程。 如果这在未来成为一个问题,可以将变量更改为 AtomicLong,并调整下面的移位/掩码常量。 但是在需要之前,这段代码使用 int 会更快更简单。 workerCount 是允许启动和不允许停止的工人数量。 该值可能与实际的原创 2021-07-10 00:17:14 · 331 阅读 · 0 评论 -
BIO、NIO、AIO
第一章 BIO、NIO、AIO课程介绍1.1 课程说明 在Java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通信架构存在一些缺陷,其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着互联网开发下通信性能的高要求,Java在2002年开始支持了非阻塞式的I/O通信技术(NIO)。大多数读者在学习网络通信相关技术的时候,都只是接触到零碎的原创 2021-06-18 22:12:35 · 392 阅读 · 0 评论 -
Linux命令
关机/重启/注销常用命令作用shutdown -h now即刻关机shutdown -h 1010分钟后关机shutdown -h 11:0011:00关机shutdown -h +10预定时间关机(10分钟后)shutdown -c取消指定时间关机shutdown -r now重启shutdown -r 1010分钟之后重启shutdown -r 11:00定时重启reboot重启init 6重启init原创 2021-06-09 11:27:36 · 158 阅读 · 0 评论 -
小技巧收集
1、网页视频加速https://blog.youkuaiyun.com/qq_40306266/article/details/104060801document.querySelector('video').defaultPlaybackRate = 2.0;//默认两倍速播放document.querySelector('video').play();/* 设置当前值 */document.querySelector('video').playbackRate = 1.5; //此值设置当前的播放倍原创 2021-05-30 19:49:53 · 668 阅读 · 0 评论 -
MySQL知识点
1、在建表时如果是varchar,char,text等字符类型的话,建完我们可以发现后面有个collate类型,是不是觉得很好奇呢,其实不难理解,该字段是用来指明是否忽略大小写的。我们一般用utf8_bin 表示区分大小写,并且二进制数据存储,如果用后面带cs的,就不会区分大小写了,亲测过utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。utf8_genera_ci不区分大小写,ci是case insensitive的缩写,即一般大小写不敏感。insensitive ; 中文解释原创 2021-05-28 20:57:26 · 203 阅读 · 0 评论 -
测试指令重排
我们都知道语句之间可能存在指令重排,那么我们怎么知道语句发生了重排了,as - if-serial 就像是串行重排的两个条件:1、两条语句前后之间不依赖2、重排之后的执行结果和单线程一样看代码验证发生了指令重排两个线程在正常情况下,怎么运行都不会发生x==0&& y == 0 那么只有唯一的一种指令重排情况,需要运行的时间有点长。package 高并发.mashibinggaobingfa;import java.util.concurrent.CountDownLatch原创 2021-05-21 00:08:41 · 301 阅读 · 0 评论 -
2021-04-21
第一章 ElasticSearch入门篇第一节 ElasticSearch概述1.1ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。ElasticSearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。构建在全文检索开源软件Lucene之上的Elasticsearch,不仅能对海量规模的数据完成分布式索原创 2021-04-21 17:05:01 · 612 阅读 · 0 评论 -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
转载Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)转载 2021-04-17 20:10:03 · 153 阅读 · 0 评论 -
网络的各个层的协议
转载DNS使用的是UDP协议网络各个层的协议HTTP协议老王喜欢看岛国小片,时常泡在论坛上和网友交流最新资讯,老王是通过浏览器浏览网页的,而浏览器是借助HTTP协议与论坛服务器沟通交流。FTP协议老王购买了该网站的会员,可以无限制下载高清小片,老王是通过浏览器下载影音文件的,浏览器是借助FTP协议与文件下载服务器沟通交流。SMTP协议近10个G的高清文件,老王心潮澎湃打开文件,傻了,“孙悟空大战白骨精”映入眼帘。。。老王怒了,打开电子邮件客户端写投诉邮件,怒斥不良网站的欺诈行为!电子邮件客转载 2021-04-17 19:39:50 · 574 阅读 · 0 评论 -
数据库date比较
前端穿进来的我们用import com.xiaoju.automarket.cayenne.common.util.DateUtil;这个类,遇到不正确的可能是Date 转换出的问题 Date start = DateUtils.parseDate(request.getStartDate(), DateUtil.FORMAT_YYYY_MM_DD);原创 2021-04-15 19:31:28 · 746 阅读 · 0 评论 -
各种配置问题和设置以及开发的坑
comand not found可能build.sh不是执行文件,chmod 777 build.shJava Mac 安装教程JAVA_HOME 查看和配置可能你的JAVA_HOME没有配置,检查一下 echo ${JAVA_HOME}如果没有的话,可能需要配置一下配置文件步骤:首先是open .bash_profile看有没有,没有的话就touch .bash_profile输入的内容如下JAVA_HOME=/Library/Java/JavaVirtualMachines/j原创 2021-04-13 15:28:12 · 162 阅读 · 0 评论 -
Dubbo Adaptive机制
参考链接就是说可以根据你传进来的参数进行实例化相应的类。原创 2021-04-11 21:54:50 · 143 阅读 · 0 评论 -
Java 逗号分隔字符串
private static final Pattern NAME_SEPARATOR = Pattern.compile("\\s*[,]+\\s*"); String[] names = NAME_SEPARATOR.split(value);value = “1,2,3,4” 。原创 2021-04-07 21:13:27 · 820 阅读 · 0 评论 -
Spring原理
06Spring原理讲解1、什么是Spring框架,Spring框架主要包含哪些模块 Spring是一个开源框架,Spring是一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从原创 2021-03-23 19:33:43 · 262 阅读 · 0 评论 -
mybatis的update的set
保存一下备用https://blog.youkuaiyun.com/qq_39940205/article/details/79517742?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMa原创 2021-03-02 11:52:08 · 256 阅读 · 0 评论 -
自己实现RPC调动
技术栈:动态代理的相关知识Spring容器动态注入,获取一个包下的所有类,注入到容器中http请求 post相关方法和工具类使用原创 2021-02-23 20:32:41 · 99 阅读 · 0 评论 -
常用日志框架Log4j,Logback,Log4j2性能比较与日志门面SLF4J简介
转载常用日志框架Log4jLog4j是Apache的一个Java的日志库,通过使用Log4j,我们可以控制日志信息输送的目的地(控制台、文件、数据库等);我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。LogbackLogback,一个“可靠、通用、快速而又灵活的Java日志框架”。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的转载 2021-02-23 00:04:52 · 249 阅读 · 0 评论 -
Mac 工具整理
数据库工具Sequel Prossh 工具electerm截图工具条iShot 在应用市场中寻找原创 2021-01-25 19:03:58 · 106 阅读 · 0 评论 -
docker 安装elasticsearch
参考链接https://www.cnblogs.com/hahahehexixihoho/p/11613524.html话不多说直接上命令先拉取镜像docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.0然后运行docker run -it --name myes -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms51原创 2021-01-23 12:16:13 · 204 阅读 · 0 评论 -
springmvc 统一的返回接口
参考链接我们想要在一个项目中,controller层返回的接口都是一样的,那么我们需要实现ResponseBodyAdvice 这个接口:比如:@ControllerAdvice(basePackages = "cn.iocoder.springboot.lab23.springmvc.controller")public class GlobalResponseBodyHandler implements ResponseBodyAdvice { @Override publ原创 2021-01-08 00:36:33 · 399 阅读 · 0 评论 -
docker安装kafka
demo地址安装kafka参照连接我们使用docker安装kafka,首先需要安装zookeeper,同样也是通过docker安装;docker安装zookeeper下载镜像docker pull wurstmeister/zookeeper 启动容器docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeperdocker安装kafka下载镜像docker pull wurstmeister/kafka原创 2020-12-29 09:38:33 · 505 阅读 · 0 评论 -
Java intern 函数
参照意思就是 如果常量池中 没有就会创建然后指向的是常量池,如果有就指向堆(前提是本身就是堆对象)String a = new String(“1”) + “2”;这种情况下a依旧是堆,此时堆中有"1"和“12”,常量池中有“1”,“2”,如果a.intern 那么返回的是常量池中的对象,因为常量池中没有"12"对象,要注意 String s = new String("1"); String s2 = "1"; s.intern();原创 2020-12-26 20:07:23 · 321 阅读 · 0 评论 -
http各个状态码的含义
英文原版中文原创 2020-12-22 19:29:41 · 206 阅读 · 0 评论 -
Spring Retry 注解使用注意
基本使用遇到一个bug就是:当你指定了exclude的异常之后,需要注意的是include=Exception.class 这样才能捕获其他异常,用于记录,你看注解的注释就明白了参考链接并且recover要想生效必须是void类型...原创 2020-12-14 22:36:54 · 258 阅读 · 0 评论 -
curl使用记录
1、带body从postman中导出,然后将–data-raw 变成 -d 即可,d表示请求体curl --location --request POST 'https://oaapi.qidian.qq.com/stab/cgi-bin/token?grant_type=uin_code&appid=200860315&secret=Mvj3s8wtTaZKyygn&code=56ff923048839b39732e0caa56ad4092&state=123&原创 2020-12-10 16:24:54 · 252 阅读 · 0 评论 -
Linux 安装kafka
必须有jdk和zookeeper(端口号为2181)https://blog.youkuaiyun.com/qq_34446716/article/details/108654717https://blog.youkuaiyun.com/qq_34446716/article/details/109431443没有安装的可以先看一下然后安装一下之后我们进入官网下载http://kafka.apache.org/downloads或者百度网盘常用命令安装在这个文件夹下入门kafka创建一个topic原创 2020-11-20 00:16:05 · 329 阅读 · 0 评论 -
IDEA生成UUID的快速方式
链接:https://pan.baidu.com/s/1gmsEVa9gXb01h_YxjITGyw提取码:p8oq复制这段内容后打开百度网盘手机App,操作更方便哦下载后IDEA导入设置即可https://www.jetbrains.com/help/idea/sharing-live-templates.html重启IDE后生效在XML编辑框内,输入u,联想uuid,回车,即可得到UUID在json编辑框内,输入i,联想idsnowflake,回车,即可得到雪花算法ID...原创 2020-11-18 15:48:28 · 1344 阅读 · 0 评论 -
Netty核心组件(了解)
原文http://cmsblogs.com/Netty常用核心组件什么是 Netty?Netty 是一款提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序也就是说,Netty 是一个基于 NIO 的客户、服务器端编程框架,使用 Netty 可以确保你快速和简单地开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty 相当简化和流线化了网络应用的编程开发过程,例如,TCP 和 UDP 的 socket 服务开发。(以上摘自百度百科).原创 2020-11-12 16:18:03 · 401 阅读 · 1 评论 -
SpringAOP相关
/**参考链接:Spring AOP @Before @Around @Afterhttps://blog.youkuaiyun.com/rainbow702/article/details/52185827获得切片返回值https://www.cnblogs.com/dreamfree/p/4102619.html解析带参数的annotationhttps://github.com/liuxg2013/AnnotationResolver.java@author XXX*/...原创 2020-11-10 22:31:06 · 92 阅读 · 0 评论 -
IDEA技巧
参照https://www.imooc.com/video/16220自动生成构造函数的字段live tempaltes设定自定义的东西,下面这个表示我输入main就自动生成public static void main(String []args){}END 表示输入结束之后光标停在的位置看我的自定义使用user.nn自动生成如下的代码块if (user != null ){}...原创 2020-11-10 21:14:15 · 117 阅读 · 0 评论 -
JVM相关
JVM默认堆内存大小默认垃圾回收器parallel scallege + parallel old 重视吞吐量parallel new + cms 重视相应时间原创 2020-11-05 12:47:57 · 72 阅读 · 0 评论 -
Java自定义注解并且使用自定义注解完成AOP
话不多说,三个元注解必须知道参照链接Java语言使用@interface语法来定义注解(Annotation),它的格式如下:表示的是运行时生效/** * @Author wenbaoxie * @Date 2020/11/3 */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ReportAno { String name();}原创 2020-11-03 11:59:14 · 174 阅读 · 0 评论 -
Linux 安装zookeeper和docker中使用
仅用于记录本人安装zookeeper的过程参考链接下载zookeeper一定要下载bin的,因为这样才带jar包!!不然zookeeper启动会报错链接:https://pan.baidu.com/s/11bD0XlT3lRtGyvXO-XJVfA提取码:autc复制这段内容后打开百度网盘手机App,操作更方便哦上传解压用你想得到的一切方法(ps:可以在linux中使用rz上传命令)或者使用xftp,把你刚才下载的文件,上传到Linux文件系统中。然后解压:[root@localh原创 2020-11-01 22:22:07 · 200 阅读 · 0 评论 -
Linux安装Nginx
仅用作记录参照链接1.安装依赖包//一键安装上面四个依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2.下载并解压安装包//创建一个文件夹cd /usr/localmkdir nginxcd nginx//下载tar包wget http://nginx.org/download/nginx-1.13.7.tar.gztar -xvf nginx-1.13.7.tar.gz3.安装ng.原创 2020-10-29 20:38:30 · 75 阅读 · 0 评论 -
JUC习题
练习JUC的题目语言:Java来源:LeetCode打印奇偶数使用sem比lock要简单一些class ZeroEvenOdd { private int n; Semaphore zero = new Semaphore(1); Semaphore even = new Semaphore(0); Semaphore odd = new Semaphore(0); volatile int flag = 1; public ZeroEvenOdd原创 2020-10-22 22:11:48 · 509 阅读 · 2 评论 -
几款好用的socket工具
博文链接原创 2020-10-21 20:45:43 · 3793 阅读 · 0 评论 -
Linux命令大全
磁盘空间1.df -h 显示已经挂载的分区列表2.ls -lSr |more 以尺寸大小排列文件和目录3.du -sh dir1 估算目录 ‘dir1’ 已经使用的磁盘空间’4.du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小5.rpm -q -a --qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)6.dpkg-query -W -f=’Inst.原创 2020-10-18 11:00:47 · 112 阅读 · 0 评论