自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小猪佩奇

好读书,求甚解。常著文章自娱,颇示己志。忘怀得失,有始有终......

  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java static关键字

一 类变量当 static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改 该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。类变量:使用 static关键字修饰的成员变量。定义格式:static 数据类型 变量名;举例:static int numberID;二 静态方法当 static 修饰成员方法时,该方法称为类方法 。静态方法在声明中有static ,建议使用类名来调用,而不需要 创建类的对象。调用方式非常简单。

2020-06-28 17:08:14 149

原创 Java 异常

异常体系[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p2ZFWxBs-1593335163396)(https://raw.githubusercontent.com/jvnote/img-folder/master/Wiz/JavaJc/0002.png)]Throwable体系:Error:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。好 比

2020-06-28 17:06:12 170

原创 Mysql 存储过程的事务使用

一.创建表语句DELIMITER $$CREATE TABLE if not exists SPE_TRANSACTION_TAB1 ( ID INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL , `NAME` VARCHAR(5) NULL, AGE INT(3) NULL , CREATED DATETIME(0) NULL )$$CREATE TABLE if not exists SPE_TRANSACTION_TAB2 ( ID I

2020-06-24 15:45:59 586

原创 Java编译器的两处优点

/** * notice * 1. 对于byte / short / char 三种类型 来说 ,如果赋值的数值 没有超过范围 * 那么Java编译器 将自动隐含的为我们补上 (byte) (short)(char) * 2. 再给变量赋值时候,如果有变是全部的常量 ,没有变量时候 . * short result = 5+8 ; * 编译器 会将若干个常量表达式计算得到结果,short result = 13 ; * 这是"编译器的常量优化 !" */public class Jsh

2020-06-22 23:38:10 218

原创 第四章 Schema与数据类型优化

良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计 schema,这往往需要权衡各种因素。例如,反范式的设计可以加快某些类型的查询,但同 时可能使另一些类型的査询变慢。比如添加计数表和汇总表是一种很好的优化査询的方式, 但这些表的维护成本可能会很高。MySQL独有的特性和实现细节对性能的影响也很大。本章和聚焦在索引优化的下一章,覆盖了 MySQL特有的schema设计方面的主题。假设读者已经知道如何设计数据库,所以本章既不会介绍如何入门数据库设计,也不 会讲解数据库设计方面的

2020-06-08 18:33:43 219

原创 第三章 服务器性能剖析

3.1性能优化简介毎个人在不同场景下对性能有不同的
理解,但本章将给性能一个正式的定义。我们将性能定义为完成某件任务所需要的时间
度量,换句话说,性能即响应时间,这是一个非常重要的原则。我 们通过任务和时间而
不是资源来测量性能。数据库服务器的目的是执行SQL语句,所以它关注的任务是査询
或者语句,如SELECT. UPDATE. DELETE等.数据库服务器的性能用査询的响应时间来度量,单位是每个花费的时间.什么是优化?很多人对此很迷茫。假如你认为性能优化是降低CPU利用率,那么可以减少对资源的使

2020-06-05 15:21:08 407

原创 第二章 Mysql基准测试.md

每个Mysql使用者都应该了解一下基准测试的知识 . 建议熟悉一下sysbench.##### sysbench的安装和做性能测试sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:http://sysbench.sourceforge.net。它主要包括以下几种方式的测试:1、cpu性能2、磁盘io性能3、调度程序性能4、内存分配及传输速度5、POSIX线程性能6、数据库性能(OLTP基准测试)

2020-06-03 20:48:38 118

原创 死锁.XDL日志文件基本查看.md

用sql server 客户端打开日志文件如图 所示 : 被×掉的图 就是牺牲的进程 !把鼠标放到图上面 就有该进程的Sql 片段提取出来的事务日志 , 用记事本打开每一个死锁XML文件有一个根节点:deadlock-list。在根节点下,有一个节点deadlock ,其中victim=“process5095468” 值为死锁的编号在deadlock victim节点下有两个节点,process-list,resource-list。process-list节点主要解释死锁的一些相关信息。

2020-05-29 16:27:41 668

原创 ConnectTimeout、ConnectionRequestTimeout、SocketTimeout的含义.md

代码块RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(2000) .setConnectTimeout(1000) .setSocketTimeout(2000) .build();connectionRequestTimout:指从连接池获取连接的time

2020-05-29 15:37:55 2556

原创 第一章 Mysql 架构和历史

第一章 Mysql 架构和历史1.1 Mysql 逻辑架构Mysql 各组件之间的协同工作架构图 :第一层 : 基于网络的客户端/服务器工具.比如:连接处理 授权认证 安全 等等第二层 : Mysql核心功能区域, 查询解析 分析 优化 缓存 还有函数 存储过程 视图等第三层 : 存储引擎 负责数据存储和读取 ! 存储引擎 只会简单响应上层服务器的请求 !1.2 并发控制只要是多个查询需要在同一时刻修改数据,就会有并发问题 !Mysql 在 服务器层和 存储引擎层两个层面的并发控制

2020-05-25 10:54:23 117

原创 log4j.properties配置文件详解

日志配置文件就是用来设置记录的级别,存放的位置和布局,它可接key=value格式的设置或xml格式的设置信息.#####一 基本配置格式#配置根Loggerlog4j.rootLogger = [ level ] , appenderName , appenderName1 , …#配置日志信息输出目的地Appender及Appender选项log4j.appender.appenderName = fully.qualified.name.of.appender.class   log4j.

2020-05-19 10:35:54 300

原创 深入理解JVM之堆内存

一、为什么会有年轻代 为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是'''优化GC性能'''。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾出很大的空间出来。二、JVM中的对象虚拟机遇到一条new指令时:根据new的参数是否能在常量池中定位

2020-05-19 10:33:40 338

原创 JVM 优化设置 -Xss -Xms -Xmx -Xmn 参数设置

-Xss -Xms -Xmx -Xmn 区别JVm对内存的参数配置 我们可以修改这些参数 让运行程序达到最好的效果参数含义-Xms堆内存最小大小 , 默认为初始化内存-Xmx堆内存最大内存-Xmn堆内新生代的大小. 通过这个值也可以得到年老代的大小 : -Xmx 减去 -Xmn除了这些配置,JVM还有非常多的配置,常用的如下:堆设置-Xms:初始堆大小-Xmx:最大堆大小-Xmn:新生代大小-XX:NewRatio:设置新生代和老年代的比值。如:

2020-05-19 10:32:34 952

原创 HashMap 的底层结构 设计原理 扩容机制

本文摘要Jdk1.8 引入了红黑树和扩容机制的优化!常用的Map 和 结构(1) HashMap它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。如果需要满足线程安全,可以用 Collections的synchronizedMap方法使HashMap具有线程

2020-05-19 10:30:27 200

原创 让Java代码远离 bug

禁止使用构造方法 BigDecimal(double)BigDecimal(double) 存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。反例:BigDecimal value = new BigDecimal(0.1D); // 0.100000000000000005551115...正例:BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1返回空数组和空集合而不是 null返回 null ,需要调用方强制检测

2020-05-19 10:29:46 86

原创 让Java代码更优雅

长整型常量后添加大写 L在使用长整型常量值时,后面需要添加 L ,必须是大写的 L不能是小写的 l ,小写 l 容易跟数字 1 混淆而造成误解。反例:long value = 1l;long max = Math.max(1L, 5);正例:long value = 1L;long max = Math.max(1L, 5L);不要使用魔法值当你编写一段代码时,使用魔法值可能看起来很明确,但在调试时它们却不显得那么明确了。这就是为什么需要把魔法值定义为可读取常量的原因。但是,-1、0

2020-05-19 10:28:22 313

原创 让Java代码性能更高

一.Map主键取值方法当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。创建MapMap<String, String> map = new HashMap<String ,String>(); for (int i = 0; i < 2000000; i++) { map.put("测

2020-05-19 10:27:46 124

原创 Java 对象深拷贝

##介绍在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝。浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。而深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。如下图描述:##拷贝对象####拷贝一个简单的对象package text;public class User { private String name; private Address address;}}pack

2020-05-19 10:25:39 145

原创 Tcp协议 三次握手四次分手

简述TCP的三次握手过程一、TCP报文格式TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式上图中有几个字段需要重点介绍下:(1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:(A)URG:紧急

2020-05-19 10:22:56 896

原创 npm安装任何包都报错的解决办法

1. 设置proxy 、https-proxy为null保证两个命令的返回值都为null(我的proxy返回不为null,所以导致报错)npm config get proxynpm config get https-proxy// 继续执行 设置proxy 、https-proxy为nullnpm config set proxy nullnpm config set https-proxy null2 设置npm config set registry http://registry.

2020-05-19 10:21:30 2151 1

原创 云服务的三种模式

云服务的三种模式IaaS(基础设施即服务)IaaS(Infrastructure as a Service),即基础设施即服务。提供给消费者的服务是对所有计算基础设施的利用,包 括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程 序。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得 有限制的网络组件(例如路由器、防火墙、负载均衡器等)的控制 1.1.2 PaaS(平台即服务)PaaS(Platform-

2020-05-19 10:20:29 4878

原创 分布式ID生成之雪花算法

一 数据库和UUID方案的不足之处采用数据库自增序列:读写分离时,只有主节点可以进行写操作,可能有单点故障的风险分表分库,数据迁移合并等比较麻烦UUID随机数:采用无意义字符串,没有排序UUID使用字符串形式存储,数据量大时查询效率比较低二、关于雪花算法有这么一种说法,自然界中并不存在两片完全一样的雪花的。每一片雪花都拥有自己漂亮独特的形状、独一无二。雪花算法也表示生成的ID如雪花般独一无二。1. 雪花算法概述雪花算法生成的ID是纯数字且具有时间顺序的。其原始版本是scala版,

2020-05-19 10:19:06 234

原创 Apache POI

Apache Poi 主要是用来处理excel 文件的:我们先来介绍一下目前市面上的Excel分为两个大的版本Excel2003和Excel2007及以上两个版本,两者之间的区别如下灬Excel2003Excel2007后缀xlsxlsx结构二进制格式.其核心结构是复核文档类型的结构XML类型的结构单sheet 数量行:65535 列 256行:1048576 列:16384特点存储容量有限基于xml压缩 占用空间小 操作效率高可以通用的方法

2020-05-18 18:39:00 449

原创 深入理解DecimalFormat.format()方法

DecimalFormat这个类,这就是格式化数据的类DecimalFormat可以处理科学计数法等问题,但是运行下面的语句会抛出错误:import java.text.DecimalFormat;public class BigDecimelTest { public static void main(String[] args) { System.out.println(new DecimalFormat("#").format("42412323545")); }

2020-05-18 18:35:23 2020

原创 运算神器 BigDecimal深入了解一下

前言我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题。如下一段代码:System.out.println(0.05 + 0.01); System.out.println(1.0 - 0.42); System.out.println(4.015 * 100); System.out.println(123.3 / 100); 输出: 0.060000000000000005 0.5800000000000001 401.49999999999994 1.2

2020-05-18 18:33:35 105

原创 MYSQL 字符串截取

mysql相关字符串截取的函数详解:SUBSTRING_INDEX(subStr, matchStr, index)--根据匹配的字符以及出现的位置开始截取字符串subStr: --需要截取的字段matchStr: --匹配的字符index: --从第几个匹配的字符,为正数时从左边开始查找并向左截取,为负数时从右边开始查找并向右截取LEFT(subStr,index)--从左边开始向右截取,截至第index位(index从1开始)subStr: --需要截取的字段index: --停止截

2020-05-18 18:32:13 250

原创 MySQL 开发规范

一、数据库命令规范1.、所有数据库对象名称必须使用小写字母并用下划线分割1.、所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)3.、数据库对象的命名要能做到见名识意,并且最后不要超过32个字符4.、临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀5.、所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)

2020-05-18 18:29:54 109

原创 Mysql 分库分表,及优化

对Sql细节优化在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。首先给大家介绍一下分库分表分库分表  分库    垂直分库 业务关联少    水平分库 根据类型分库,例如:游戏分区  分表    垂直分表 一张表有些字段内容多,但是不经常用可以进行分开,    水平分表 一张表里的数据根据类型(Type),时间(一年,半年,一个月)等某个字段进行分表sql查询语句的一些优化对查询进行优化,应尽量避免全表

2020-05-18 18:28:34 293

转载 SQLServer禁用、启用外键约束

---启用or禁用指定表所有外键约束 alter table PUB_STRU NOCHECK constraint all; alter table PUB_STRU CHECK constraint all; ---生成启用or禁用指定表外键约束的sql select 'ALTER TABLE ' + b.name + ' NOCHECK CONSTRAINT ' + a.name +';' from sysobjects a ,sysobjects b where a.xtype

2020-05-18 18:27:34 917

原创 LEAD和LAG函数(位移函数)

SQL Server从2012开始,引入了LEAD和LAG函数,这两个函数可以把之前要关联查询的方法,改为可直接获取当前数据上下相邻多少行数据,描述的有点不清楚,上数据吧,测试数据:if not object_id(N'Tempdb..#T') is null drop table #TGoCreate table #T([Id] int,[Value] int)Insert #Tselect 1,10 union allselect 2,20 union allselect 3,30 u

2020-05-18 18:26:16 2168

原创 sql server DATEPART() 函数的使用(注意防止入坑)

datepart()datepart()函数是用来返回 指定日期时间的指定日期部分的整数。返回类型为:int。语法:DATEPART(datepart,date)其中date是日期、时间。part指其中的一部分。所以这个函数的意思就是取日期中的一部分。函数的第一参数 datepart是指定应返回的日期部分,参数说明如下表:日期部分缩写说明yearyy,yyyy返还年份quarterqq,q返还季度monthmm,m返还月份day of yea

2020-05-18 18:23:40 5778

原创 Integer和int的自动装箱和拆箱

我们先来看一段代码:public class IntegerDemo { public static void main(String[] args) { Integer a = new Integer(3); Integer b = 3; int c = 3; System.out.println(a == b); System.out.println(a == c); Integer f1 = 1

2020-05-18 18:22:38 278

原创 数据库设计与建模

数据库设计与建模三范式:第一范式(1NF):确保每一列的原子性(做到每列不可拆分)第二范式(2NF):在第一范式的基础上,非主字段必须依赖于主字段(一个表只做一件事)第三范式(3NF):在第二范式的基础上,消除传递依赖反三范式:反三范式是基于第三范式所调整的,没有冗余的数据库未必是好的数据库,有时为了提高运行效率,就必须降低 范式标准,适当保留冗余数据数据库建模:了解了数据的设计思想,那对于数据库表的表设计应该怎么做呢?答案是数据库建模数据库建模:在设计数据库时,对现实世界进行分析、

2020-05-18 18:21:09 158

简历模板-- 共度2020程序员寒冬

自己曾经整理的一些不错的简历模板希望对大家有帮忙! 共度2020程序员寒冬! 加油 ! 奥利给 !

2020-05-29

空空如也

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

TA关注的人

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