10 2020 档案
摘要:在Redis缓存中有三个必须要知道概念:缓存穿透、缓存击穿和缓存雪崩。 缓存穿透 那什么是缓存穿透,它就是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。它拿不到数据时,是会一直查询数据库,这样会对数据库的访问造成很大的
阅读全文
摘要:本文来源 | 阿里巴巴中间件 前言 在大型分布式 IT 架构领域,微服务是一项必不可少的技术。从本质上来讲,微服务是一种架构风格,将一个大型的系统拆分为多个拥有独立生命周期的应用,应用之间采用轻量级的通信机制进行通信。这些应用都是围绕具体业务进行构建,可以独立部署、独立迭代,也可能根据业务负载独立进
阅读全文
摘要:工具准备: iotop: http://guichaz.free.fr/iotop/ pt-ioprofile: http://www.percona.com/downloads/percona-toolkit/2.2.1/ IO高分析方法: 1、查看磁盘使用率 df -lh 2、安装iostat
阅读全文
摘要:Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合,Spring MVC 已经成为当前最主流的框架之一。并且随着 Spring3.0 的发布,全⾯超越 Struts2,成为最优秀的 MVC 框架。 但是很多开发者只知道写,但不知道为什么这么写、不知道如何进行优化,这是非
阅读全文
摘要:Spring 中的bean 不是线程安全的。 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。 Spring 的 bean 作用域(scope)类型:
阅读全文
摘要:在设置线程池线程个数的时候,经常会想到这个问题,是不是设置的线程数越多越好?理解这个问题之前我们要先清楚的知道我们为什么使用多线程。 为什么会使用多线程 使用多线程的主要目的我们应该能够回答的出来就是提高程序的性能,这个提高性能其实是指,降低延迟指发送请求到接收到数据的时间,和提搞破:单位时间能可以
阅读全文
摘要:前言 日志,在我们开发中是一个非常重要的话题,良好的日志打印可以帮助我们快速的定位问题,可能现在我们开发用到最多的日志框架就是slf4j了,但是日志还有其他很多优秀的框架,比如:Apache Common Log,Log4j,java.util.logging等。 MyBatis作为一款优秀的ORM
阅读全文
摘要:1.查看linux版本:cat /proc/version2.查看Linux版本: uname --all3.查看php版本:php -v查看PHP扩展库: php -m查看MySQL版本: mysql -V查看Nginx版本:nginx -v(或者大V)4.查看gcc版本:gcc --versio
阅读全文
摘要:alter table `goods`.`goods_config` modify `goods_code` varchar(50) NOT NULL COMMENT '我是备注'; 这是一段标准SQL,对任何数据库都适用。 goods:库名; goods_config:表明; goods_code
阅读全文
摘要:ArrayList:有序,索引,重复。 ArrayList集合: 底层实现是数组; 查询速度快,增删速度慢; 此集合是线程不安全的集合,运行速度快。
阅读全文
摘要:List接口的特点: 1.有序;(指的是存储和取出的顺序一致,而不是1,2,3 或 a,b,c) 2.所有元素带有索引; 3.允许存储重复元素。
阅读全文
摘要:LinkedList链表的特点: 1.查找慢(从头开始依次查找) 2.增删元素快 【链表的概念中,任何一个元素都被称为节点Node。 一个元素记录下一个元素的内存地址,称为单向链表; 一个元素记录了下一个元素的内存地址,同时记录了上一个元素的内存地址,称为双向链表。)】
阅读全文
摘要:ArrayList数组的特点:查找快,增删慢(因为数组定长,需要复制新数组)
阅读全文
摘要:检查一下看看接收参数的时候有没有加@RequestBody,没有加@RequestBody获取不到参数。
阅读全文
摘要:并发修改异常不能出现! 在使用迭代器迭代集合的过程中,使用了集合本身的功能,修改了集合的长度,hasNext();会出现并发修改异常,这样是不对的。 如果是修改集合中的元素,没有修改集合的长度,是没有影响的。
阅读全文
摘要:判断的时候把常量写在前面,防止出现空指针异常
阅读全文
摘要:常见的四大运行异常: 越界异常,空指针,类型砖汉,无效参数异常
阅读全文
摘要:public static void main(String[] args) { String s ="123 456 abc 789"; String[] split = s.split(" +"); for (int i = 0; i < split.length; i++) { System.
阅读全文
摘要:public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int i = binarySearch(arr, 6); System.out.println("i = " + i);//i = 5
阅读全文
摘要:Objcet类源码: private static native voide registerNatives(); native修饰符,本地的意思。 方法的源代码根本不是java语言的编写,C++语言编写的; 运行时期在一个特殊的内存区域:本地方法栈; 意义:在和操作系统进行交互(Windows);
阅读全文
摘要:StringBuilder 称为字符串缓冲区 缓冲区:提高效率 StringBuilder可变字符序列 内部字符数组 没有final char[] value 可变数组(数组是固定长度),默认长度是16。【如果字符多了,会新建数组,长度是原来的2倍(16x2),并把以前的元素复制过来,原来的数组消失
阅读全文
摘要:字符串方法:Char[] toCharArray(); 字符串转成字符数组。
阅读全文
摘要:字符串方法 String subString(int begin)截取字符串,开始索引; 字符串方法 String subString(int begin,int end)截取字符串,开始索引,结束索引;【包含开始不包含结束】 public static void main(String[] arg
阅读全文
摘要:字符串方法:split(String s)按照传递的字符串进行切割。 结果是字符串数组。
阅读全文
摘要:字符串方法:replace(Char oldChar,Char newChar); 字符串方法:replace(String oldString,String newString);
阅读全文
摘要:字符串方法:int indexOf(char c); 查找字符在字符串中第一次出现的索引 找不到字符,返回-1 java:获取数据的时候,获取的是引用类型,没有返回null; java:获取数据的时候,获取的是基本类型,没有返回负数。
阅读全文
摘要:字符串的方法:byte[] getBytes(); 字符串转成字节数组,查询ASCII
阅读全文
摘要:字符串方法:boolean endsWith (String s); 判断一个字符串是否以另一个字符结尾。(区分大小写)
阅读全文
摘要:字符串方法:boolean stratsWith(String s);判断一个字符串是否以另一个字符开头。(区分大小写)
阅读全文
摘要:字符串方法:boolean quealsIgnoreCase(String s) 比较字符串是否相同,忽略大小写
阅读全文
摘要:字符串方法:boolean contains(String s); 判断一个字符串中是否包含另一个字符串,完全包含返回true。(区分大小写)
阅读全文
摘要:匿名内部类,就是接口实现类的对象 使用对象多态性: 接口实现,方法重写,父类或者接口引用 = new 实现类对象();
阅读全文
摘要:使用匿名内部类,省去有名类的编写, 使用前提:一定要有接口实现,或者是父类继承。 格式: new 接口或者父类(){ 方法的重写; } 称为匿名内部类。 本质:匿名内部类就是接口实现类的对象。 匿名内部类编译后也是有class文件的:当前类名$1
阅读全文
摘要:外部类名.this.成员变量名 即可。
阅读全文
摘要:公式: 外部类名.内部类名 变量名 = new 外部类对象(). new 内部类对象(); 变量名.内部类方法();
阅读全文
摘要:内部类编译后也会有class文件: 外部类名$内部类名
阅读全文
摘要:可以直接使用外部类的成员变量,包括私有修饰的。 外部类不能直接使用内部类的成员;如果需要使用,需要先创建内部类的对象,才能使用内部类成员。
阅读全文
摘要:权限: public protected default private 最常用的权限: public : 任何程序都可以使用。 private : 只能在本类中使用。 default : 同一个类是可以使用,同一个包中是可以使用的,其他情况不能用的。 protected : 受保护的,在不同保的子
阅读全文
摘要:子类和父类的多态程序(对象的多态性) 静态在内存中,优先于对象,静态和对象无关! 静态成员变量:无论编译还是运行,都看父类中的成员变量 多态:只有非静态的方法,编译是父类,运行是子类。【javac编译器,会检测代码语法,fu.show(); 知道方法是静态的,编译的时候,直接将fu兑现,改写为类名.
阅读全文
摘要:1:局部代码块。写在方法中,{}主要限制变量作用域; 2:构造代码块。写在类中,{}每次创建对象的时候运行; 3:静态代码块。写在类中,static{}在使用类的成员的时候,执行,只运行一次(只要使用了这个类,这个静态代码块就会执行,仅执行一次,无论建对象,调用方法,调用变量)。【JDBC:JVM加
阅读全文
摘要:静态成员优先于对象在内存中出现; 静态成员属于类,非静态成员属于对象。 非静态成员只能被对象调用;静态成员可以被类名调用,也能被对象调用,推荐使用类名调用。(非静态方法只能用对象去调,静态方法可以对象调用。用同一个类中可以省略不写类名直接调用,不同类就需要类名.调用了) 静态调用: 不能在静态的方法
阅读全文
摘要:抽象类是继承体系中的最共性内容,是我的一种(is-a);接口是继承体系中的额外功能(like-a)。 相同点: 都位于继承的顶端,用于被其他类实现或继承; 都不能直接实例化对象; 都包含抽象方法,其子类都必须重写这些抽象方法。 区别: 抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码的重
阅读全文
摘要:方法中的参数是接口,接口没有对象,所以只能传递实现类对象。 用了多态的形式。
阅读全文
摘要:关键字 instanceof 比较运算符,计算结果是布尔型 true , false 使用方式: 对象 instanceof 类名 判断出现这个对象,是不是由这个类创建的。
阅读全文
摘要:多态扩展性的体现 父类 = new 子类(); 扩展性:父类 = new 子类可以随意变换(); 调用方法,执行子类的方法重写。
阅读全文
摘要:javac的时候,看父类;运行的时候,JVM会动态的绑定到子类的对象中。
阅读全文
摘要:多态是继封装(可以是独立的)、继承之后,面向对象的第三大特征。 没有继承就没有多态,多态是指同一行为,具有多个不同表现形式。(多态生活中,一个事物具备的多种形态) 多态的前提条件: 1.要有继承或者是接口实现【二选一】。 2.要有方法的重写【意义体现:不重写,无意义】。 3.建立对象,父类引用指向子
阅读全文
摘要:在实现类中重写一个,使用的时候使用的也是实现类中重写的那个方法。 或者少实现一个。
阅读全文
摘要:类和类之间是继承关系,单继承。 累和接口之间是实现关系,多实现。 接口和接口之间是继承关系,接口支持多继承。一个接口,可以同时继承多个接口。
阅读全文
摘要:cmd窗口使用javap 命令可以把部分.class文件反编译。
阅读全文
摘要:全部大写字母。 //常量的命名规则:全部大写字母 public static final String DEMO = "demo";
阅读全文
摘要:数值型 - 整数类型: byte , short , int , long 数值型 - 浮点型: float , double 字符型: char 布尔型: boolean
阅读全文
摘要:抽象方法没有方法体,所以没有返回值。 public abstract class AbstractDemo1 { public abstract void show1(); }
阅读全文
浙公网安备 33010602011771号