自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

转载 JAVA_OPTS设置

启动文件修改在windows环境下,tomcat下的~/bin/catalina.bat文件,在文件头部加入:set "JAVA_OPTS=%JAVA_OPTS% -server -Xms5120m -Xmx10240m -XX:PermSize=640M -XX:MaxPermSize=2560m"在linux环境下,tomcat下的~/bin/catalina.sh文件,在文件头部加入:...

2019-07-31 17:05:45 3020

原创 mysql忘记密码

第一步:停止mysql服务网上有给出方法打开/etc/my.cnf,在里面修改,但是我压根没在这个目录下找到该文件。可能版本原因吧!输入命令停止mysql服务:/etc/init.d/mysql stop 或/etc/init.d/mysqld stop第二步:安全启动mysql,且跳过授权表:mysqld_safe --user=mysql --skip-grant-t...

2019-07-26 17:09:34 144

转载 使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库

mysql数据库提供了一个很好用的工具mysqldump用以备份数据库,下面将使用mysqldump命令进行备份所有数据库以及指定数据库一、mysqldump一次性备份所有数据库数据/usr/local/mysql/bin/mysqldump -u用户名-p密码 --all-databases > /保存路径/文件名.sql注意:以上命令直接在控制台输入即可,无须登录进入...

2019-07-26 11:03:48 554

转载 JVM 7种垃圾收集器的特点及使用场景

这里讨论的收集器基于JDK1.7Update 14之后的HotSpot虚拟机,这个虚拟机包含的所有收集器如下图3-5所示:上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。1.Serial收集器Serial收集器是最基本、发展历史最悠久的收集器。是单线程的收集器。它在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集完成。...

2019-06-29 21:30:11 145

转载 从实际案例聊聊Java应用的GC优化 ——原创: 录录 美团技术团队

https://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651747273&idx=1&sn=7f947064a41eeecb6816a5d0838581ae&chksm=bd12aa848a65239289d5c39264e89bd175f377f6554bfe93b37ad6498cf13deff356333...

2019-06-27 21:53:40 235

转载 JVM之对象分配:栈上分配 & TLAB分配

1. Java对象分配流程 2. 栈上分配 2.1 本质:Java虚拟机提供的一项优化技术 2.2 基本思想: 将线程私有的对象打散分配在栈上 2.3 优点: 2.3.1 可以在函数调用结束后自行销毁对象,不需要垃圾回收器的介入,有效避免垃圾回收带来的负面影响 2.3.2 栈上分配速度快,提高系统性能 2.4 局...

2019-06-27 21:08:35 607 1

原创 JVM——GC垃圾回收V1.0.1

一.-x 和 -xx 参数https://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.htmlX参数是非标准的参数-Xint:解释执行 | -Xcomp:第一次使用就编译成本地代码 | -Xmixed:混合模式,jvm自己来决定是否编译成本地代码。平时我们java -ve...

2019-06-27 18:32:26 346

转载 栈帧、局部变量表、操作数栈

1.定义 栈帧(stack frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 对于执行引擎来说,活动线程中,只有栈顶的栈帧是有效的,称为当前栈帧,这...

2019-06-27 16:57:52 338

转载 JVM参数调优-设置堆、新生代、老年代、持久代大小

一、根据程序的运行状况查看其活跃的数据量①、活跃的数据:1.应用程序运行于稳定状态时,老年代占用的java堆大小2.应用程序运行于稳定状态时,永久代占用的java堆大小其实就是FullGc后这2个数据的大小②、动手测试:1.测试代码:public class A { int[] storage = new int[102400]; int[] extra...

2019-06-25 23:35:38 21916 2

原创 JVM——基础篇V1.0.1

一.什么是JVM1.解释翻译,JVM(Java Virtual Machine,Java虚拟机)java虚拟机中的Java解释器负责将字节码文件(编译器编译成为.class文件)解释成为特定的机器码进行运行在任何具有Java虚拟机的计算机或者电子设备.[实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll libjvm.so 这个动态连接库才是java虚拟机的实际操作处理所在...

2019-06-25 21:30:17 187

转载 MySQL的bin-log日志备份有三种模式,分别是:ROW、Statement、Mixed

一、Row基于行的复制(row-based replication,RBR)日志中会记录成每一行数据被修改成的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况。优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关信息,仅仅需要记录哪一条记录被修改了,修改成什么信样了,所以row的日志内容会非常清楚的记...

2019-06-07 12:32:18 417

原创 算法——力扣练习

1.【删除最外层的括号】class Solution { public String removeOuterParentheses(String S) { int count=0,index=0; //count左括号次数, index单独括号数 StringBuilder sb=new StringBuilder(); for(int i...

2019-06-04 17:55:19 376

原创 并发编程——并发编程基础【JMM-同步八种操作】V1.1

Java 内存模型-同步八种操作(1)lock(锁定):作用于 主内存的变量,把一个变量标记为一条线程独占状态(2)unlock(解锁):作用于 主内存的变量,把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定(3)read(读取):作用于 主内存的变量,把一个变量值从主内存传输到线程的 工作内存中,以便随后的load动作使用(4)load(载入):作用于 工作内存...

2019-06-04 15:27:33 634

原创 MSQL——力扣SQL语句练习

1.【查找重复邮箱】编写一个 SQL 查询,来删除Person表中所有重复的电子邮箱,重复的邮箱里只保留Id最小的那个。+----+------------------+| Id | Email |+----+------------------+| 1 | [email protected] || 2 | [email protected] || ...

2019-05-28 21:46:46 2528 2

原创 数据库设计开发规范-阿里.pdf

数据库设计开发规范-阿里.pdf链接:https://pan.baidu.com/s/1PHhQV-eSg8q5dS3oqWBvbw提取码:kthu

2019-05-21 18:04:15 7209 3

原创 数据库表的设计思路——三范式理解

范式(NF):符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度第一范式:对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式:对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:对字段冗余性的约束,要求字段不能由其他字段派生出来,即字段没有冗余两个表之间的数据关系:1)一对一: 两个表里数据唯一对应;2)一对多: 表A...

2019-05-21 16:56:23 1039

原创 并发编程——并发编程基础V1.0

1.多线程发展历史最早的计算机是为了解决复杂的数学计算问题,有点类似今天的计算器,早期的计算器只能接收特定的指令,比如用户输入一个指令,计算机就回去执行响应的操作,当用户在输入数据的时候计算机会处于一个非工作的状态,不会存储指令,很多情况下计算机都会处于一个等待状态,不能充分利用计算机本身的资源。解决这个问题需要把一系列需要执行的操作写下来一次性交给计算机去处理,计算机去读取相应的指令去做...

2019-05-15 15:54:50 210

原创 分布式架构——分布式消息通信框架RMI原理分析V.3.0.0

1.什么是RPC(remote procedure )RPC(Remote Procedure Call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远端系统资源;对于客户端来说, 传输层使用什么协议,序列化、反序列化都是透明的Java RMIRMI 全称是 remote method invocation – ...

2019-04-29 17:46:05 259

原创 分布式架构(zookeeper)——初识zookeeperV.4.0.0

1. 从架构的发展过程说起从架构的发展说起,以电商架构为例,早期我们是单一的应用架构,随着互联网的快速发展和体量的不断增长,后端的架构通过垂直伸缩的方式很难达到我们期望的性能要求,同时投入产出比也非常大,同时普通 PC 的性能也越来越高,所以通过水平伸缩的方式来提升性能成为了主流。在分布式架构下,当服务越来越多,规模越来越大时,对应的机器数量也越来越大,单靠人工来管理和维护服务及地址的...

2019-04-28 22:34:54 209

原创 数据结构与算法——二叉树堆排序2.2.0

堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列 性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。升序排序使用大根堆 降序排列使用小根堆大根堆排序...

2019-04-25 17:20:08 184

原创 数据结构与算法——二叉树存储结构V2.1.0

存储结构:链式存储 和 顺序存储链式存储代码实现创建二叉树并添加节点二叉树的形态:空树,左斜树,右斜树。。树的遍历:遍历方式:前序遍历,中序遍历,后序遍历【相对于根节点而言,先取根节点为前序遍历,先取左节点再去根节点最后取右节点为中序遍历,最后取根节点为后序遍历】前序遍历中序遍历后序遍历节点查找查找方式分:前序查找,中...

2019-04-18 17:26:31 101

原创 分布式架构(基础篇)——序列化与反序列化V.2.0.0

1.了解序列化的意义Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比 JVM 的生命周期更长。但在现实应用中,就可能要求在 JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java 对象序列化就能够帮助我们实现该功能序列化是把对象的状态信息转化为可存储或...

2019-04-18 16:06:35 190

原创 数据结构与算法——树结构2.0.1

1.什么是树结构2.为什么使用树结构线性结构数据 顺序存储添加,插入 性能比较低,连式结构查找性能比较低3.树的基本概念4.二叉树的概述二叉树:任何一个节点的子节点的数量都不超过二,二叉树的节点分左节点和右节点且位置不能随意颠倒满二叉树:所有叶子节点都在最后一层且节点的总数为2的n次方减一 ,n是树的高度完全二叉树:所有叶子节点都在最后一层或倒数第二层,且最...

2019-04-18 10:38:29 101

原创 分布式架构(基础篇)——HTTP/HTTPS协议V.1.1.0

1. 了解客户端和服务端的请求原理2. HTTP 协议及其组成3. Https 交互原理分析Http 协议的组成大家可以通过抓包工具,Fillder 或者其他去抓去一个请求, 然后可以看到如下的请求数据和响应数据。分为两部分,一个是客户端的请求信息,一个是服务端的响应信息。抓去到的信息如下requestPOST https://re.csdn.net/csdnbi HT...

2019-04-17 15:11:12 600

原创 Fiddler

1.Fiddler常用功能[https://www.telerik.com/fiddler]2.工作原理当时用Fiddler 作为代理服务器时,有两种模式作为选择 :缓冲模式(buffering):http请求所有的数据都准备好之后才把数据返回给客户端 ,其作用是可控制最后的服务器响应;流模式(streaming):可实时把服务器数据返回给客户端,其优点更接近于...

2019-04-16 15:28:30 199

转载 linux screen工具

一、背景系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。二、简介GNU Screen是一款由GNU计划开发的用于...

2019-04-15 16:40:58 100

原创 分布式架构(基础篇)——TCP/IP通讯协议V.1.0.1

网络领域的知识协议:tcp、udp、multicast 。IO(BIO、NIO、AIO)序列化和反序列化【网络通讯中传递对象】【组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个接收者传输相同的数据,也只需复制一份相同的数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。】Java对BIO、NIO、AIO的支持:...

2019-04-14 13:17:49 932

原创 分布式架构(基础篇)——分布式架构设计V.0.0.1

主流架构模型-SOA 架构和微服务架构SOA 全称(Service Oriented Architecture)[['ɔ:rɪəntɪd][ˈɑ:kɪtektʃə(r)]],中文意思为“面向服务的架构”,他是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用跟 SOA 相提并论的还有一个 ESB(企...

2019-04-09 17:43:32 170

原创 分布式架构(基础篇)——演进过程V.0.0.1

一.分布式架构中的相关概念越来越多的企业关键应用都必须采用集群技术,实现负载均衡(Load Balancing)、容错(Fault Tolerance)和失效转移(Failover)。以达到系统可用性(High Availability)和可伸缩性(Scalability)的要求集群: 多台机器的集合,指的是将几台服务器集中在一起,实现同一业务。分布式:分布式是指将不同的业务分布...

2019-04-09 17:00:07 182

原创 IDEA快捷开发-杂篇

类的加载顺序 先静态后动态 先属性后方法 先上后下IDEA 快捷键 sout System.out.println(); obj.sout System.out.println(obj); psvm main 方法 剪切一行 或者所选多行 Ctrl + X 设置(Settings… Ctrl+A...

2019-04-08 16:36:10 174

原创 Spring源码学习——编程思想0.0.1

1.AOP(Aspect-oriented programming )面向切面编程对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。增强产品功能, 解耦, 制定规则 面向规则编程2.OOP()面向对象编程3.BOP bean和bean之间的关系,不希望每次重复管理,让程序来自动管理,Spring的起源便是从...

2019-03-30 22:17:32 164

原创 数据结构与算法——线性结构1.0.1

1.数组//问题1.数组长度不可变int[] a = new int[3]; int[] x={1,2,3,4}; int[] y= new int[]{1,2,3,4,5};解决方案:添加方案:重新创建一个长度 是原数组长度+1的数组,将数据复制到新数组 添加的值放入新数组 替换老数组地址例:2.删除:创建原数组长度-1 的新数组 将需要删除元素之前 ...

2019-03-30 12:40:57 115

原创 数据结构与算法——概述0.0.1

1.数据结构2.什么是数据结构数据结构就是数据和数据之间的关系数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成3.数据结构分为 : 数据的逻辑结构(指反映元素之间逻辑关系的数据结构) 数据的存储结构(在计算机内存中是如何存储的) 数据的物理结构:指数据的逻辑结构在计算机存储空间的存放形式...

2019-03-29 15:24:46 138

转载 JDK、JRE和JVM 的关系——0.0.1

1.JDK、JRE和JVMJDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。然后我们来看JREJRE(Java Runtime Environment,Java...

2019-03-29 11:46:30 83

转载 Java复习ELSE——反射1.0.1

反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类...

2019-03-25 18:33:54 103

转载 Java复习第四篇——集合详解0.0.5

一、数组和集合的比较数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:1:数组能存放基本数据类型和对象,而集合类存放的都是对象的引用,而非对象本身!2:数组容易固定无法动态改变,集合类容量动态改变。3:数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数...

2019-03-18 21:23:33 527

原创 Java复习第三篇——面向对象三大特征0.0.4

Java面向对象的三大特征为:封装、继承和多态,本文说说我对三大特性的理解。1.封装Java中的封装是指一个类把自己内部的实现细节进行隐藏,只暴露对外的接口(setter和getter方法)。封装又分为属性的封装和方法的封装。把属性定义为私有的,它们通过setter和getter方法来对属性的值进行设定和获取。下面我举一个简单的封装例子public class Person ...

2019-03-18 21:20:24 98

原创 java 性能优化——0.0.2

一、为'vectors' 和 'hashtables'定义初始大小jvm为vector扩充大小的时候需要重新创建一个更大的数组,将原原先数组中的内容复制过来,最后,原先的数组再被回收。可见vector容量的扩大是一个颇费时间的事。通常,默认的10个元素大小是不够的。你最好能准确的估计你所需要的最佳大小。例子:import java.util.vector;public cla...

2019-03-18 21:14:07 306

转载 java性能优化之for循环——0.0.1

完成同样的功能,用不同的代码来实现,性能上可能会有比较大的差别,所以对于一些性能敏感的模块来说,对代码进行一定的优化还是很有必要的。今天就来说一下java代码优化的事情,今天主要聊一下对于for(while等同理)循环的优化。作为三大结构之一的循环,在我们编写代码的时候会经常用到。循环结构让我们操作数组、集合和其他一些有规律的事物变得更加的方便,但是如果我们在实际开发当中运用不合理,可能会给程...

2019-03-18 18:38:20 323

原创 java复习第三篇——流程控制与数组0.0.3

流程控制1、控制结构:Java 支持下列控制结构:选择、循环、跳转-- 选择:- if-else- Switch--循环 :-while-do-while-for ...

2019-03-18 18:19:48 142

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除