- 博客(169)
- 资源 (3)
- 收藏
- 关注

原创 HashSet与HashMap的分析, HashCode与equals的分析
以下为个人见解,如有谬误,欢迎指出。 首先HashSet是set集合的子类,无序,不可重复,底层是哈希表实现。哈希表是数组+链表+红黑树组成(jdk1.8之后),我们如何判断往HashSet集合中添加元素。这个时候就不得不讨论HashCode和equals两个方法了。 HashCode与equals都是object父类的成员方法,所以任何对象都有Has...
2018-11-06 05:24:43
429
1
原创 如何快速定位接口响应慢问题
如何快速定位接口响应慢问题一、背景在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧…本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。二、步骤2.1 定位定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。2.1.1 工具监控就工具而言,推荐使用 arthas ,用到的是 https://link.youkuaiyun.com/?target=https%3A%2F%2Falibaba.github.io%2Farthas%
2021-03-24 17:29:13
4219
1
原创 2020-09-10详谈ACL权限
ACL 是什么ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。本文的演示环境为 ubuntu 16.04。ACL有什么用既然是作为UGO权限管理的补充,ACL自然要有UGO办不到或者很难办到的本事,例如:可以针对用户来设置权限 可以针对用户组来设置权
2020-09-10 14:17:03
432
原创 JUC多线程及高并发
JUC多线程及高并发文章目录JUC多线程及高并发一、请你谈谈对volatile的理解1、volatile是java虚拟机提供的轻量级的同步机制2、JMM(java内存模型)3、你在那些地方用过volatile二、CAS你知道吗1、compareAndSet----比较并交换2、CAS底层原理?对Unsafe的理解3、CAS缺点三、原子类AtomicInteger的ABA问题?原子更新引用?1、A...
2019-11-09 14:32:10
1053
转载 跳表(SkipList)及ConcurrentSkipListMap源码解析
https://blog.youkuaiyun.com/sunxianghuang/article/details/52221913
2019-09-11 10:37:15
241
原创 Redis常见面试题
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。Github 源码:h...
2019-09-01 20:49:23
238
原创 Centos7.x下Redis注册成服务的教程
Centos7.x设置Redis开机启动说明:将源码编译中间件注册成Linux服务一般有两种方法,我这里介绍用脚本注册的方法。Systemctl 知识简介:从CentOS7 开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管理器。),管理开机自启动的命令也从chkconfig改为了systemctl,...
2019-07-26 16:06:07
1818
原创 Centos7.x下haproxy注册成服务的教程
1.尝试在 usr/lib/systemd/system/下新建haproxy.service,始终不行,网上也没有出现这种方法2.尝试第二种方法,在etc/init.id/ 创建haproxy,编写脚本如下:#!/bin/bash## haproxy## chkconfig: 35 85 15# description: HAProxy is a free, ver...
2019-07-26 16:05:26
803
原创 Centos7.x设置postgresql开机启动
Centos7.x设置postgresql开机启动用之前脚本方法始终出现问题.这里用了第二中方法:前言如果通过二进制安装包的形式安装pg的话就不存在本文记录的问题,因为通过yum命令安装好之后会在/usr/lib/systemd/system目录下生成一个系统服务(postgresql-x.service),但是如果通过源码编译安装pg的话则需要自己处理,要么通过systemd去自定义一个...
2019-07-26 16:05:01
3408
原创 Centos7.x设置nginx开机启动
Centos7.x设置nginx开机启动Systemctl 知识简介:从CentOS7 开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管理器。),管理开机自启动的命令也从chkconfig改为了systemctl,由systemctl一个命令代替了CentOS7以前系统中的service和chkcon...
2019-07-26 16:04:16
694
原创 Centos.x下程序注册成服务教程
一般有两种方式:1.1.1在etc/init.d/下新建服务名,例如,nginx,redis等1.2 编辑相应的服务脚本,每个脚本可能不一,百度一下就有,更改自己的程序的配置文件,下面以haproxy为例,说明方法1.2.1 vim /etc/init.d/haproxy1.2.2 编辑脚本,注意更改自己的配置文件#!/bin/bashhaproxychkconfig: 3...
2019-07-26 16:03:29
1026
原创 CentOS 7 elasticsearch service 开机自启
CentOS 7 elasticsearch service 开机自启常规启动:[root@localhost elasticsearch-6.3.1]# ./bin/elasticsearch 结果启动报错了 can not run elasticsearch as root 看起来root不允许直接启动。因为这个原因,那我们需要新建一个用户来启动es,具体操作如下:以root用户来创...
2019-07-26 16:01:18
2199
转载 Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1Cookie机制在程序中,会话跟踪是很...
2019-07-22 22:51:52
223
原创 剑指offer-翻转字符串
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?这是一个很常见的题,我们主要用到S...
2019-07-22 16:10:21
382
原创 linux下将程序注册成服务,设置开机自启
注册成服务一般是有两种方式:在usr/lib/systemd/system下新建 服务名.service ,编辑脚本 在etc/init.d下新建服务,编辑脚本这两种方式在我其他的文章中都有提到过,今年主要分析一下第二种方式的原理能够使用service命令进行操作的,就是已经注册成为linux的系统服务了。window中也可以注册成为系统服务的办法。service命令用的...
2019-05-10 13:57:59
6266
原创 Centos7.x注册nginx为服务,设置开机自启
说明:将源码编译中间件注册成Linux服务一般有两种方法,我这里介绍用脚本注册的方法。Systemctl 知识简介:从CentOS7 开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管理器。),管理开机自启动的命令也从chkconfig改为了systemctl,由systemctl一个命令代替了Cen...
2019-05-08 12:00:32
1395
原创 数组的三种定义方式
数组本身是一种引用类型,就像int是整形,int【】是引用类型,是定义数组的一种方式数组的初始化有两种大的方式,分为三种小的方式静态初始化,初始化时由程序员显示的指定每个数组的初始值,由系统决定数组的长度。动态初始化,初始化时由程序员指定数组长度,由系统为数组元素分配初始值,不同类型数组的初始值不同。下面可以看一下代码 //1.静态初始化,初始化时由程序员显示的指定每个数组的初始值...
2019-01-17 11:14:40
24634
2
原创 计算机网络面试问题集锦
1、Http和Https的区别 Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者之间存在如下不同:端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443;资...
2019-01-10 15:57:45
285
转载 java 多线程面试常见45题
1、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行时会抛出异常。两者的区别: 唯...
2019-01-10 10:47:40
276
转载 Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模...
2019-01-04 12:18:53
187
转载 Java并发——线程同步Volatile与Synchronized详解
面试时很可能遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?提到线程安全、线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢? 1. volatile修饰的变量具有可见性volatile是变量修饰符,其修饰的变量具有可见性。可见性也就是说一旦某个线程修改了该被volat...
2019-01-04 11:48:44
381
原创 剑指offer--54字符流中第一个不重复的字符
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。 这个题和之前有一道题很相似,不过这个题唯一的变换就是没有给出最后的字符串,所以我们无法遍历他,为了解决这个问...
2018-12-14 04:20:22
187
原创 剑指offer48---不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。这个题考位运算,位运算其实是非常常见的。 赶紧复习一下位运算的东西吧https://blog.youkuaiyun.com/zj15527620802/article/details/80367128简单的来讲,与运算,二进制相同则为1,不同为0, 或运算 二进...
2018-12-14 03:15:44
165
原创 剑指offer---47求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。public class Solution { public int Sum_Solution(int n) { // if(n==1) return 1; // else return n+Sum_Solution(n...
2018-12-13 05:37:30
384
原创 spring boot 中MyBatis集成
application.properties增加spring配置数据库链接地址spring.datasource.url=jdbc:mysql://localhost:3306/***?useUnicode=true&characterEncoding=utf8&useSSL=falsespring.datasource.username=***spring.dataso...
2018-12-08 05:11:39
208
原创 解决springboot无法访问此网站,localhost 拒绝了我们的连接请求的问题。
最近刚开始学习springboot的时候,写了几个controller,始终出现无法访问的页面,没有报404的错误,出错的页面如下大家注意到没有,在springboot启动成功标志之前,多了一些debug 的提示,正常启动,是没有提示的,我查询资料,始终解决不了这个问题,没有办法,只能用前一天的代码,再把今天的代码敲上去,所以,没有吧代码Git多么重要,至少昨天的代码是正确的。后来,又发现...
2018-12-08 04:22:11
47829
27
原创 牛客项目第二天----解决No data sources are configured to run this SQL and provide advanced
出现这个问题的原因是 ,Intellij没有成功没有配置数据源运行此 sql ,但是如果没有连接成功数据库,我们想表中添加数据,又怎么成功了,其实,mybatis通过application.properties中文件,可以连接数据库,但是,我们这个sql文件是在test 用例中。并不会扫描这个sql文件,我们在测试用例中,添加@Sql("/init-schema.sql")其实,就...
2018-12-06 03:31:00
3477
转载 构建微服务:Spring boot 入门篇
什么是spring bootSpring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(...
2018-12-05 00:00:50
181
转载 校招前几个月,如何高效地进行复习?
距离明年春招还有三个多月的时间,很多想找实习和想参加补招的同学应该也都在忙着复习。今年的春招已结束,我在开始准备秋招了,也就是从4月份到7月份这段时间,我完成了一次比较系统的复习。所以把一些经验分享给大家,总归会有一些参考价值的。 壹平时的积累和沉淀研究生期间我有一件事情一直在坚持,那就是做笔记和写博客。做笔记,就是记录学习中大大小小的事情,可能是面试问题,可能是一周的学习计划...
2018-12-04 03:15:38
975
6
原创 jsp、freemarker、velocity、thymeleaf页面方案分析
springboot1.5开始已经不支持velocity,牛客网高级项目还在使用velocity,这一点一点要注意,自己想办法解决。1、概述在java领域,表现层技术主要有三种, (1)jsp; (2)freemarker; (3)velocity; (4)thymeleaf;2、jsp优点: 1、功能强大,可以写java代码 2、支持jsp标签(jsp tag) 3、支...
2018-12-04 02:03:28
458
原创 剑指offer45---扑克牌顺子
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面...
2018-12-03 01:05:45
283
原创 剑指offer--和为S的最小的两个数
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。这个题,因为给出的数组是递增的,所以,从最外层开始判断。package JZoffertest;import java.util.ArrayList;public class test42 {...
2018-12-03 00:02:48
186
原创 剑指offer41---和为s的连续正数序列
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数...
2018-12-02 23:09:42
146
转载 各大公司Java后端开发面试题总结
ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量...
2018-12-02 21:58:06
355
原创 如何激活Intellij 2018.3----激活过程中遇到的坑
激活Intellij IDEA方法很多,我这里主要介绍激活过程中遇到的坑解决的问题有:1:如何下载Intellij2: 如何激活Intellij3:解决IntelliJ IDEA 注册码(别再复制别人博客里面又长又傻逼的字符串,还有可能复制多几个字符,我们自己生成4解决IntelliJ IDEA 注册码 key is invalid的问题5.解决windos版本,和mac...
2018-12-01 08:20:07
3985
10
原创 剑指offer29---最小的K个数
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;public class Solution { public ArrayList<Integer&...
2018-11-29 05:05:52
154
原创 剑指offer19---顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.package JZoffertest;import java.util.ArrayList;public clas...
2018-11-29 03:48:21
144
原创 剑指offer12---数值的整数次幂
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方 这个题考点是快速幂public class Solution { public double Power(double base, int exponent) { double res=1; int p=Math.abs(e...
2018-11-28 23:04:53
155
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人