java开发
文章平均质量分 75
看星星的猿
这个作者很懒,什么都没留下…
展开
-
jdk1.7+1.8的HashMap&ConcurrentHashMap源码解读
前言Map 这样的Key Value在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。HashMap众所周知 HashMap 底层是基于数组 + 链表组成的,不过在 jdk1.7 和 1.8 中具体实现稍有不同。Base 1.71.7 中的数据结构图:先来看看 1.7 中的实现。...原创 2021-11-20 21:47:43 · 337 阅读 · 0 评论 -
java - Java标志Xms和Xmx是否覆盖标志XX :+UseCGroupMemoryLimitForHeap?
我正在Kubernetes中运行一个容器化的Java应用程序。为了使jvm保留根据容器规范的内存,必须设置标志-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap。如果将这两个标志与Xms和Xmx标志一起设置,那么jvm的行为将是什么?一个标志会覆盖另一个标志吗?例如,如果我们有java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xm原创 2021-06-07 17:09:42 · 3529 阅读 · 0 评论 -
实战Springboot内置Tomcat配置调优
我们在使用springboot(版本:2.0.3.RELEASE)开发web项目时,大多数时候采用的是内置的Tomcat(当然也可以配置支持内置的jetty),内置Tomcat有什么好处呢?1、方便微服务部署,减少繁杂的配置2、方便项目启动,不需要单独下载web容器,如Tomcat,jetty等。#云服务器配置12核心,24G内存,java启动jar命令:nohup $JAVA_HOME/bin/java -server -Xms10240m -Xmx14336m -Xmn9216m -X转载 2021-04-09 18:11:39 · 1235 阅读 · 0 评论 -
Spring系列之Spring常用注解总结
传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率。为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java Bean紧密结合,既大大减少转载 2021-03-09 17:24:46 · 394 阅读 · 0 评论 -
docker CMD ENTRYPOINT区别
CMD 容器启动命令Docker 不是虚拟机,容器中的应用都应该以前台执行,而不是像虚拟机、物理机里面那样,用systemd去启动后台服务,容器内没有后台服务的概念。对于容器而言,其启动程序就是容器应用进程,容器就是为了主进程而存在的,主进程退出,容器就失去了存在的意义,从而退出,其它辅助进程不是它需要关心的东西。CMD指令的格式和RUN相似,也是两种格式:shell格式:CMD <命令> exec格式:CMD ["可执行文件", "参数1", ...原创 2020-07-31 11:10:24 · 371 阅读 · 0 评论 -
centos 7.6 安装python2和python3
CentOS 7.6 默认安装了 Python 2.7.5准备环境yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -yyum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage ..原创 2020-05-12 19:49:44 · 382 阅读 · 0 评论 -
绝版centos16通过virtualBox安装centos7.3,设置共享目录
1.在安装完centos虚拟机后,再安装增强工具,在storage项绑定增强iso文件。2.启动虚拟机,输入 lsscsi 出现如下界面——> 其中出现/dev/sr0 代表你已经成功挂载光驱在IDE控制器下3.建立文件夹mkdir /media/cdrom,然后通过mount 命令将增强工具挂载到/media/cdrom 目录下mount /dev/sr0 /me...原创 2020-04-23 13:00:44 · 291 阅读 · 0 评论 -
安装xampp之后报错XAMPP: Starting Apache...fail.修改端口
1.安装完成xampp之后报错:2.网上查到的解决办法是:输入sudo apachectl stop 之后再次启动lampp,问题得以解决:过两天发现问题并没有解决:①在网上查询发现是因为端口被占用了,所以就修改端口号为8080:#vi /opt/lampp/etc/httpd.conf②同时修改lampp文件中的testport...原创 2020-04-11 16:18:00 · 1237 阅读 · 0 评论 -
原 bootstrap fileinput 组件整合SpringMVC上传图片到本地磁盘
整合前的准备步骤1.搭建好基础框架,本文用的是SSM(Spring+SpringMVC+Mybatis),这里的过程就不在本文中讲了,之前我做个一个demo(ssm整合+用户模块),可以参考这个搭建好。2.下载bootstrap fileinput组件源码: https://github.com/kartik-v/bootstrap-fileinput/搭建后的效果图图1. 图...转载 2018-07-24 11:42:27 · 427 阅读 · 1 评论 -
Java socket 长连接 短连接
讨论Socket必讨论长连接和短连接一、长连接和短连接的概念 1、长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接;后者是每次请求,都新建一个Socket,处理完一个请求就直接关闭掉Socket。所以,其实区分长短连接就是:整个客户和服务端的通讯过程是利用一个Socket还是多个Socket进行的。 可能你会想:这还不简单,长连接不就...转载 2018-04-18 10:46:23 · 890 阅读 · 0 评论 -
Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)Java语言中System.out.print与Log的比较
前言距离上一次更新博客有一段时间了,主要是因为最近有开发任务,另外,这段时间也在学习docker的相关知识,所以博客就没有继续写了,推荐一本书《Docker技术入门与实战》(第二版),想体验一下docker的朋友可以看一下。按照计划,第二阶段主要是讲一下项目优化上的一些东西,相关的工具已经在基础篇介绍了一些,所以在本阶段更多的是侧重于代码上,虽然做了一份粗略的计划,但是第一篇该写什么又犯了纠结,刚...转载 2018-03-05 14:24:30 · 228 阅读 · 0 评论 -
Java使用MyEclipse构建webService简单案例
今天主要和大家分享,如何搭建一个Web服务,做Android开发,不可避免会涉及到客户端开发,我们怎么样来实现一个服务端,怎么样来实现一个客户端,并相互传递数据。就算调用别人的服务时,也能知道大概是怎么样实现的。 WebService一般分为.Net版和Java版,今天我们主要来实现Java版的WebService,.Net版本的还是比较简单的。 照例,轻松一笑:原创 2015-09-15 21:04:56 · 382 阅读 · 0 评论 -
MyBatis 动态SQL String 参数为空
mybatis 参数为String,if test读取该参数代码: SELECT MAX(DEPART_ID) FROM T_P_DEPART AND DEPART_PID = #{departId,jdbcType=VARCHAR}原创 2015-09-08 17:38:50 · 7997 阅读 · 0 评论 -
MySQL常见问题汇总(修改密码/远程权限)
1.MySQL给用户赋予所有权限使得远程可以访问GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY '123456'; FLUSH PRIVILEGES;执行上面两句话。自动创建用户zhangs,密码lisi格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码"原创 2015-08-13 11:23:08 · 536 阅读 · 0 评论 -
Git Pull Push 避免用户名和密码方法
前言 在大家使用github的过程中,一定会碰到这样一种情况,就是每次要push 和pull时总是要输入github的账号和密码,这样不仅浪费了大量的时间且降低了工作效率。在此背景下,本文在网上找了两种方法来避免这种状况,这些成果也是先人提出来的,在此只是做个总结。1.方法一 1.1 创建文件存储GIT用户名和密码在%HOME%目录中,一般为C:\users\原创 2015-08-26 14:49:13 · 3350 阅读 · 0 评论 -
Tomcat启动时,报java.io.EOFException异常
java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.jav原创 2015-06-05 11:01:20 · 732 阅读 · 1 评论