java
文章平均质量分 84
陈远驹
精英
展开
-
docker搭建redis多主多从策略
重新进入6381,-c可以防止路由失效((error) MOVED 12706 192.168.202.200:6383),往其他服务器hash槽存数据时报错。重启之后发现,6381还是从机,6384是主机。上图可以看出,当6381宕机后,6384由从机变为了主机。#配置好一个直接复制进其他五个机器上就行,要在相同目录。# 停止6381,机器,查看集群状态。# 进入6382容器,查看集群状态。# 进入任意redis容器,这里以6381为例。3.1.2 切换到集群上的其他服务器,获取值。原创 2022-10-25 17:11:52 · 1566 阅读 · 1 评论 -
Windows jar 操作命令
如果要输出日志到文件中,则用有窗口的启动方式,使用java -Dfile.encoding=utf-8 -jar XXX.jar >out.log 2>&1 & 的命令。不需要在后面添加>out.log 2>&1 &,这样的写法,后台启动方式,日志输出不到文件中,会产生文件,但是out.log没有内容。如果服务有自定义日志,那么不需要额外打印到日志文件中,直接使用后台启动方式即可。注:这种方式启动后,窗口不能关闭,关闭窗口,服务也关闭。将上面的命令保存成bat文件即可方便启动。注:这种方式启动后,无窗口。原创 2022-09-15 11:36:17 · 9476 阅读 · 0 评论 -
java中 IO与NIO的区别
首先说一下核心区别: NIO是以块的方式处理数据,但是IO是以最基础的字节流的形式去写入和读出的。所以在效率上的话,肯定是NIO效率比IO效率会高出很多。 NIO不在是和IO一样用OutputStream和InputStream 输入流的形式来进行处理数据的,但是又是基于这种流的形式,而是采用了通道和缓冲区的形式来进行处理数据的。 还有一点就是NIO的通道是可以双向的,但是IO中的流只能是单向的。 还有就是NIO的缓冲区(其实也就是一个字节数组)还可以进行分片,可以建立只原创 2021-11-10 09:19:28 · 194 阅读 · 0 评论 -
Win-Nacos集群部署Nginx转发
准备工作:Nacos版本:1.3.1JDK版本:1.8系统:Win10数据库:MySQL8.0Nacos集群部署官方文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html(我按照官方文档部署没有成功,可能官方文档的教程只适用于Linux/Unix/Mac)本次部署是在一台机器上,使用三个不同的端口,模拟三台Nacos机器一、下载NacosGithub:https://github.com/alibaba/nacos/re原创 2021-05-28 10:10:14 · 867 阅读 · 0 评论 -
idea第一次提交项目至码云出现Push rejected Push to origin/master was rejected
1:Alt+F122: git pull git pull origin master git pull origin master --allow-unrelated-histories git push -u origin master -f3:检查码云代码提交与否原创 2020-12-02 14:12:37 · 250 阅读 · 0 评论 -
Nginx基本属性配置详解
1. Nginx服务的基本配置1.1 用于调试进程和定位问题的配置项 是否以守护进程的方式运行nginx # 默认ondaemon on|off; 是否以master/worker方式工作 # 默认on,指定了是否以master-worker进程的方式运行,如果设置为off,那么所有的请求将只会由master进程处理master_process on|off;...原创 2019-10-22 16:23:04 · 564 阅读 · 0 评论 -
springBoot小技巧
设置网站图标原来我们在使用tomcat开发时,设置网站图片时,即icon图标时,一般都是直接替换root包下的favicon.ico替换成自己的,或者在网页的头部设置link的ref为icon然后设置其href值。而在SpringBoot中,替换图片也是很简单的,只需要将自定义图片放置在静态资源目录下即可,即默认有static、public、resources、/META-INF/resour...原创 2019-04-11 11:23:25 · 271 阅读 · 0 评论 -
HashMap原理与运用
HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。底层数据结构分析JDK...原创 2019-03-06 17:10:18 · 165 阅读 · 0 评论 -
Java核心技术 卷一 复习笔记
1.数据类型包含八种基本类型,其中四种整形(int/short/long/byte),两种浮点类型(float/double),一种用于表示Unicode编码的字符类型char,一种表示真值的boolean类型整形大小排序long(接近正无穷)>int(2147483647)>short(32767)>byte (127)浮点类型大小排序 double>flo...原创 2019-01-16 17:37:58 · 216 阅读 · 0 评论 -
关于springboot拦截器里使用@Autowired注入失败为空的问题
最近在用springboot写一个项目,发现springboot确实比springMvc好用,通过各种配置就可以较少很多代码但是在做的过程中,发现自己定义的拦截器在注入@Autowired 时不成功 @Autowired 下的接口类是null值。 经过查找,才知道拦截器加载的时间点在springcontext之前,所以在拦截器中注入才为null,这就是问题的原因。所以...原创 2019-01-11 14:49:18 · 2700 阅读 · 0 评论 -
HashMap集合底层实现原理
Java集合:HashMap底层实现和原理(源码解析)Note:文章的内容基于JDK1.7进行分析。1.8做的改动文章末尾进行讲解。一、先来熟悉一下我们常用的HashMap:1、概述HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的...原创 2018-12-25 17:20:18 · 319 阅读 · 0 评论 -
java防止SQL注入的两种方法
1.采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setString方法传值即可: String sql= "select * from users where username=? and password=?; PreparedStatement preState = conn.prepareStatement(sql); pr...原创 2018-12-21 16:37:15 · 2611 阅读 · 0 评论 -
Java核心(二)深入理解线程池ThreadPool
本文你将获得以下信息:线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现为了方便读者理解,本文会由浅入深,先从线程池的使用开始再延伸到源码解读和源码分析等高级内容,读者可根据自己的情况自主选择阅读顺序和需要了解的章节。(一)线程池优点线程池能够更加充分的利用CPU、内存、网络、IO等系统资源,线程池的主要作用如下:利用线程池可以复用线程,控制最大并发...翻译 2018-11-24 17:09:33 · 91 阅读 · 0 评论 -
Java核心(四)你不知道的数据集合
导读:Map竟然不属于Java集合框架的子集?队列也和List一样属于集合的三大子集之一?更有队列的正确使用姿势,一起来看吧!Java中的集合通常指的是Collection下的三个集合框架List、Set、Queue和Map集合,Map并不属于Collection的子集,而是和它平行的顶级接口。Collection下的子集的关系如文章开头图片所示。本文的重点将会围绕: 集合的使用、...翻译 2018-11-24 17:10:56 · 148 阅读 · 0 评论 -
Java核心(三)并发中的线程同步与锁
乐观锁、悲观锁、公平锁、自旋锁、偏向锁、轻量级锁、重量级锁、锁膨胀…难理解?不存的!来,话不多说,带你飙车。上一篇介绍了线程池的使用,在享受线程池带给我们的性能优势之外,似乎也带来了另一个问题:线程安全的问题。那什么是线程的安全问题呢?一、线程安全问题的产生线程安全问题:指的是在多线程编程中,同时操作同一个可变的资源之后,造成的实际结果与预期结果不一致的问题。比如:A和B...翻译 2018-11-24 17:10:14 · 71 阅读 · 0 评论 -
Java核心(五)深入理解BIO、NIO、AIO
BIO、NIO、AIO 的区别是什么?同/异步、阻/非阻塞的区别是什么?文件读写最优雅的实现方式是什么?NIO 如何实现多路复用功能?带着以上这几个问题,让我们一起进入IO的世界吧。在开始之前,我们先来思考一个问题:我们经常所说的“IO”的全称到底是什么?可能很多人看到这个问题和我一样一脸懵逼,IO的全称其实是:Input/Output的缩写。一、IO 介绍我们...翻译 2018-11-24 17:11:35 · 107 阅读 · 0 评论 -
spring遇到的特级坑
由于以前一直觉得在dao层定义方法名和service的方法名一致的话会更好区分一点,于是在今天莫名其妙的在数据访问层定义的方法一直出现数据错误,完全懵逼,于是总结出了一下感慨也明白了最终含义。首先解释面上意思,service是业务层,dao是数据访问层。呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,...原创 2018-11-06 09:43:39 · 93 阅读 · 0 评论 -
java角色权限设计
java用户角色权限设计 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限...原创 2018-12-19 13:48:14 · 2300 阅读 · 0 评论 -
jvm使用分析
1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共 享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器...原创 2018-12-19 17:46:53 · 184 阅读 · 0 评论 -
java基本数据类型的字节定义
int 四字节没错 byte一字节也没错但一个字节有8位!先看byte,byte占一字节,一字节等于八位我们来看看一个位能表示多少东西: 最小0 最大1 表示 2的1次方再看看两个位能表示多少东西: 最小00 最大11 共2的2次方, 能表达四个数再看看三个位能表示多少东西: 最小000 最大111 共2的3次方,能表达8个数那八个位能表示多少?最小:00000000 最大:1111...原创 2018-12-26 14:59:40 · 1503 阅读 · 0 评论 -
java enum日常运用
用法一:常量在JDK1.5 之前,我们定义常量都是: public static final.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语句只支持int,...原创 2018-12-26 17:52:46 · 83 阅读 · 0 评论 -
Java核心(一)Thread详解
一、概述在开始学习Thread之前,我们先来了解一下 线程和进程之间的关系:线程(Thread)是进程的一个实体,是CPU调度和分派的基本单位。 线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。由上描述...翻译 2018-11-24 17:08:16 · 257 阅读 · 0 评论