Java开发
文章平均质量分 52
Doctor舒畅
https://github.com/shuchang-wang
展开
-
mongodb入门学习
**分享一下写的不错的博客,我就不重复造轮子了!!!**mongodb官网下载不了, MongoDB下载、安装、配置、使用,如何下载MongoDB数据库,MongoDB入门原创 2021-12-14 23:00:44 · 1271 阅读 · 0 评论 -
面试题:看代码写结果
考察本质:String对象、常量池、String.intern()方法的实现原理、for循环执行顺序、逻辑与(&&)等相关内容的考察代码:public class StringTest { public static void main(String[] args) { String str1 = "hello"; String str2 = "hello"; String str3 = "he"+"llo";原创 2021-10-11 14:34:04 · 217 阅读 · 0 评论 -
面试题:回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。示例 4:输原创 2021-09-15 17:42:03 · 366 阅读 · 0 评论 -
面试题:两个按递增顺序排列的整数数组 nums1 和 nums2合并到nums1中,并递增排序,只允许开辟常量空间!!
给你两个按递增顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你合并 nums2 到 nums1 中,使合并后的数组同样按 递增顺序 排列。【只允许开辟常量空间!!!】示例 :输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]解释:需要合并 [1,2,3] 和 [2,5,6] 。合并结果是 [1,2,2,3,5,6] 。方原创 2021-09-14 12:52:59 · 1027 阅读 · 0 评论 -
面试题:使用三个线程,一个线程打印 X,一个线程打印 Y,一个线程打印 Z,按顺序打印X,Y,Z,连续打印10次XYZ
面试题:抛砖引玉方式1:package com.shuchang;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 本题目主要考察线程间通信问题: * 题目描述:使用三个线程,一个线程打印 X,一个线程打印 Y,一个线程打印 Z,按顺序打印X,Y,Z,连续打印10次X原创 2021-09-13 21:46:16 · 198 阅读 · 0 评论 -
夜莺(Nightingale)企业级监控平台
元芳算法服务部署-监控篇(内部)简介夜莺(Nightingale)是滴滴基础平台联合滴滴云研发和开源的企业级监控解决方案。旨在满足云原生时代企业级的监控需求。Nightingale在产品完成度、系统高可用、以及用户体验方面,达到了企业级的要求,可满足不同规模用户的场景,小到几台服务,大到数十万都可以完美支撑。兼顾云原生和裸金属,支持应用监控和系统监控,插件机制灵活,插件丰富完善,具有高度的灵活性和可扩展性。在夜莺(Nightingale)的基础上进行了二次开发,支持docker化部署(不推荐),原创 2021-08-16 16:46:10 · 3275 阅读 · 0 评论 -
Dubbo概述以及使用
1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)其核心部分包含:1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种原创 2021-08-16 16:37:43 · 435 阅读 · 0 评论 -
如何验证同步非静态方法锁是this锁
如何验证同步非静态方法锁是this锁思路:2个线程共享同一个变量,在处理修改共享变量的方法内,使用同步代码块的this锁和同步非静态方法对该共享变量进行修改操作,如果最终结果正确,说明两个线程使用的是同一把锁。...原创 2021-07-08 10:57:22 · 192 阅读 · 0 评论 -
Linux反选操作【删除文件】
最简单的方法是# shopt -s extglob (打开extglob模式)# rm -fr !(file1)如果是多个要排除的,可以这样:# rm -rf !(file1|file2)shopt 命令可以设置 shell 的可选参数.shopt [-psu] [optname …]-s 开启某个选项.-u 关闭某个选项.-p 列出所有选项的当前生效命令. (不带-p表示列出所有选项的当前状态)extglob选项如果开启 extglob 选项, ...原创 2021-01-24 14:24:53 · 1708 阅读 · 0 评论 -
一次性搞明白!——source /etc/profile命令在shell脚本中执行不生效的原因
目录一次性搞明白!——source /etc/profile命令在shell脚本中执行不生效的原因问题描述问题原因解决:一次性搞明白!——source /etc/profile命令在shell脚本中执行不生效的原因问题描述一次写自动化安装脚本,要安装java,需要将JAVA_HOME写到/etc/profile中,然后在脚本中使用source /etc/profile命令,但是发现profile文件中确实有JAVA_HOME。但是使用source /etc/profile命令好像原创 2021-01-15 23:17:09 · 7621 阅读 · 5 评论 -
手把手教你——linux磁盘分区
[root@192-168-101-78 ~]# fdisk -lDisk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label typ.原创 2021-01-14 13:00:11 · 864 阅读 · 0 评论 -
Android之HTTPURLConnection、OkHttp、Velloy、Retrofit等网络请求框架
HttpURLConnection HttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。HttpURLConnection使用: Get请求实现:private void requestGet(HashMap<String, String> paramsMap) {t...原创 2019-01-25 19:13:42 · 1257 阅读 · 0 评论 -
客户端时不时报org.apache.rocketmq.remoting.exception.RemotingTimeoutException: wait response on the channel
原因分析:原因一:打开了VIP通道,发送服务初始化时需要手动设置为false#解决方式producer.setSendMessageWithVIPChannel(false);原因二:是在代码debug模式,debug时间过长,导致发送报错##解决方式解决:缩短debug时长,再进行检查...原创 2021-01-11 18:54:49 · 10243 阅读 · 0 评论 -
TCP 连接的“ 三次握手 ”与“ 四次挥手 ”
即将查阅和搜索对比,发现下面链接讲解的比较详细和通俗易懂,特与君分享:详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”https://baijiahao.baidu.com/s?id=1654225744653405133&wfr=spider&for=pcwireshark怎么抓包、wireshark抓包详细图文教程https://www.cnblogs.com/moonbaby/p/10528401.html...原创 2020-09-03 15:12:59 · 103 阅读 · 0 评论 -
List集合去重与java8去重新特性
一、常规去重碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素。二、java8的stream写法实现去重package com.alibaba.springboot;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import or原创 2020-08-21 10:55:38 · 718 阅读 · 0 评论 -
解决 Springboot中Interceptor拦截器中依赖注入失败
解决 Springboot中Interceptor拦截器中依赖注入失败场景当我们在拦截器中通过注解实现依赖注入时,会发现注入失败,EmployeeDao对象为null,例如:拦截器:package com.alibaba.springboot.component;import com.alibaba.springboot.dao.EmployeeDao;import com.alibaba.springboot.entities.Employee;import org.slf...原创 2020-08-11 10:00:56 · 3510 阅读 · 1 评论 -
探究JWT的Token认证机制
简介 JSON Web Token(JWT)是一个非常轻巧的规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。它是基于RFC 7519标准定义的一种可以安全传输的小巧和自包含的JSON对象。由于数据是使用数字签名的,所以是可信任的和安全的。JWT可以使用HMAC算法对secret进行加密或者使用RSA的公钥私钥对其进行签名。加密原理JWT:JSON Web Token的缩写,是REST接口的一种安全策略,也是一种安全的规范,使用JWT可以让我们在用户端和服务...原创 2020-08-11 10:02:13 · 377 阅读 · 0 评论 -
安装&升级python3
安装python环境下载 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz安装前安装依赖包 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel解压编译安装 tar -zxvf Python-3.6.1.tgz...原创 2020-07-15 09:26:43 · 184 阅读 · 0 评论 -
MYSQL Error NO.1130 ERROR的解决(使用客户端远程连接数据库)
问题背景:linux系统,centos7,mysql数据库,远程计算机:SQLyog客户端,xshell远程工具;通过xshell连接数据库,输入mysql -u root -p,然后输入密码,可以进入mysql,但是通过SQLyog在页面MYSQL Host Address这一项输入IP地址无法连接到数据库,出现1130 error。具体如下图:查询原因:用xshell进入mysql,首先use mysql;...原创 2020-07-12 01:37:57 · 283 阅读 · 0 评论 -
一、运维监控系统之——Nightingale
夜莺(Nightingale)是一套衍生自 Open-Falcon 的互联网监控解决方案,融入了部分滴滴生产环境的最佳实践,灵活易用,稳定可靠,是一个生产环境直接可用的版本。通过源码编译安装(注意:夜莺依赖go语言环境,需要MySQL和Redis)1、以下是整个安装步骤及过程:[root@localhost ~]# cd ~[root@localhost ~]# pwd/root[root@localhost ~]#wget https://studygolang.com/dl/g原创 2020-07-03 19:44:04 · 2701 阅读 · 0 评论 -
四、Elasticsearch之Java API-Java High Level REST Client
一、Java api 实现文档管理1、导包【Maven】<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.4.2</version> <e...原创 2020-07-03 19:37:45 · 4710 阅读 · 0 评论 -
fireWalld防火墙
【版本>=CentOS7】查询防火墙状态systemctl status firewalld启动防火墙systemctl start firewalld关闭防火墙systemctl stop firewalld禁用,禁止开机启动systemctl disable firewalld查询版本firewall-cmd --version显示状态firewall-cmd --state查看所有开放的端口firewall-cmd --zon原创 2020-06-22 18:08:52 · 196 阅读 · 0 评论 -
Linux环境下配置maven环境
Linux环境下配置maven环境1.下载安装包并解压安装包直接去apache官网下载:https://maven.apache.org/download.cgi将安装包上传并放在自己指定的目录:/opt/解压:tar -zxvf apache-maven-3.6.32.配置环境变量编辑系统文件:vim /etc/profileexport MAVEN_HOME=/opt/apache-maven-3.6.3export PATH=$MAVEN_HOME/bin:$PA原创 2020-05-24 10:50:23 · 1912 阅读 · 0 评论 -
运维故障分析报告【线上运行报错紧急】
分析结论选址接口无法连接 dubbo 注册中心,会不断重试,触发 dubbo(当前版 本:dubbo-2.5.4-SNAPSHOT-jdk1.6-8.4.jar)内存泄露 bug,导致 jvm 内存逐渐耗光, 最终内存溢出。说明:由于没有 dubbo 相关的源码,无法准确定位 dubbo 内存泄露原因,以上结论仅从数据 的相关性分析得出。现象描述2019年9月26日晚上,将选址接口从...原创 2020-06-22 17:25:16 · 3009 阅读 · 2 评论 -
反射:获得运行期的泛型类型
知识点一://获得当前类型的带有泛型类型的父类ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass();//获得运行期的泛型类型Class clazz = (Class) ptClass.getActualTypeArguments()[0];Type[] get...原创 2019-10-22 20:40:29 · 346 阅读 · 0 评论 -
Eclipse Validating XXX...【验证】缓慢的优化
使用Eclipse的人基本都有这种情况,如图:各种等待有木有,各种崩溃啊有木有,反正我是觉得挺烦的,但是也不知道是干嘛的,如果取消了,造成程序出问题,就是给自己找麻烦,我知道这个事情肯定是可以关的,关键的问题就是,关了影响了什么,是我们可以接受的么,如果影响到程序正常的运行了,那还不如等一会儿呢,所以。。。百度一下吧,呵呵呵,没有,只能根据字面来理解,是用来做验证的,看它验证的文件都是一些...原创 2019-10-18 11:36:59 · 297 阅读 · 0 评论 -
Windows系统安装多个jdk版本以及jdk版本间进行切换
1.安装好jdk1.7X64和jdk1.7X322.在设置系统变量中设置JAVA_HOME(以后只用修改JAVA_HOME对应的名字就能切换对应版本的jdk)新建第一个版本的jdk的JAVA_HOME(后面想添加更过以此类推)JAVA_HOME7x32D:\workSpace\Tools\personStudy\jdk1.7.0_72JAVA_HOME7...原创 2019-10-17 13:03:41 · 257 阅读 · 0 评论 -
线程池常见的4种创建方式以及本质
本质:内部封装了ThreadPoolExecutor,根据参数的不同产生了不同的效果。 ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2019-08-02 19:16:22 · 875 阅读 · 0 评论 -
day04在VMware虚拟机CentOS系统上安装JDK、MySQL、Tomcat、Nginx等软件
1、安装jdk a.检测是否安装了jdk 运行java -version b.若有需要将其卸载 c.查看安装那些jdk rpm -qa | grep java d.卸载 先卸载 openjdk 1.7 rpm -e --nodeps 卸载的包 rpm -e --nodeps ja...原创 2019-03-11 21:10:25 · 319 阅读 · 0 评论 -
day05Nginx介绍以及安装过程
1、什么是nginx?Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。2、应用场景1.http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。2.虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使...原创 2019-03-11 21:10:56 · 142 阅读 · 0 评论 -
day02在VMware虚拟软件上安装linux系统(CentOS)
CentOS6.5在VMware10中安装1、启动VMware的画面2、点击File--->New Virtual Machine 创建一台新虚拟机3、在弹出框中选择典型安装4、选择I will install the operating system later.(稍后安装系统)5、选择引导系统是Linux并选择系统版本是CentOS...原创 2019-03-11 21:11:14 · 134 阅读 · 0 评论 -
day01虚拟软件VMware的安装
什么是虚拟软件:虚拟软件是一个可以使你在一台机器上同时运行二个或更多Windows、LINUX等系统。它可以模拟一个标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器等常用的虚拟原件:1.VMware workstation2.VirtualBoxOracle公司收购Sun公司VMware...原创 2019-03-11 21:13:30 · 143 阅读 · 0 评论 -
Java基础知识24——IO流day04-Properties集合&序列化流和反序列化流&打印流&commons-IO
打印流* 打印流 * 字节打印流 PrintStream * 字符打印流 PrintWriter * * 打印流的特点: * A:只有写数据,没有读数据。只能操作目的地,不能操作数据源 * B:可以操作任意类型的数据 * print() * println() * C:如果启动了自动刷新,能够自动刷新 * PrintWrite bw = new Pri...原创 2019-02-01 18:28:44 · 427 阅读 · 0 评论 -
Linux下Zookeeper的安装
Zookeeper的安装安装环境:Linux:centos6.4Jdk:1.7以上版本Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。安装步骤:第一步:安装jdk【day04在VMware虚拟机CentOS系统上安装JDK、MySQL、Tomcat、Nginx等软件】已讲解。第二步:把zookeeper的压缩包上传到l...原创 2019-09-05 23:03:49 · 117 阅读 · 0 评论 -
Eclipse设置类/方法注释模版
首先打开Eclipse配置选项:Window->Preference->Java->CodeStyle->CodeTemplate配置Comments下的每个选项的模版,我们依次配置:1、Files/** * @Title: ${file_name} * @Package ${package_name} * @Description: ${to...原创 2019-09-06 20:26:29 · 118 阅读 · 0 评论 -
svn忘记密码怎么找回?如何获取svn账号和密码?
在公司的工作中,可能你一进软件公司刚开始做项目之前,就会需要添加一个SVN地址来download一个项目进行开发。Boss会给你一个账号名密码,你登录就可以进行checkout了。可是,过了一段时间可能就需要在checkout另一个项目了,这时候就需要新建一个资源库地址,如果是同一个ip地址,那么是不需要再次输入账号名密码的,直接添加就可以了。可是如果不是同一个ip地址,那么需要再次录入...原创 2019-09-12 11:02:28 · 663 阅读 · 0 评论 -
Redis之在Linux下安装
Redis的安装Redis是c语言开发的。安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yum install gcc-c++安装步骤:第一步:redis的源码包上传到linux系统。redis-3.0.0.tar.gz第二步:解压缩redis。tar -zxvfredis-3.0.0.tar.gz第三步:编译。进入redis源码目录。cdredis-...原创 2019-09-18 21:35:34 · 119 阅读 · 0 评论 -
Redis在Linux下集群的搭建
Redis集群的搭建Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。故Redis集群至少需要6台服务器。搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-70060、准备工作1、使用ruby脚本搭建集群。需要ruby的运行环境。安装rubyyum install rubyyum instal...原创 2019-09-19 21:16:42 · 968 阅读 · 0 评论 -
Solr索引库的使用SolrJ
0、添加依赖 <!-- solr客户端 --> <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> </dependency>一、配置文件:applicationCon...原创 2019-09-23 23:10:00 · 182 阅读 · 0 评论 -
Redis在开发中的使用Jedis:单机版和集群版
0、添加依赖 <!-- Redis客户端 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </depende...原创 2019-09-23 23:13:42 · 316 阅读 · 0 评论