自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 <Mysql从入门到精通阅读笔记>

所发生的

2020-09-08 21:06:04 122

原创 Redis阅读笔记(基础数据结构)

1.0 Redis 基础数据结构 1.string (字符串) 2. list (列表) 3. set (集合) 4. hash(哈希) 5. zset (有序集合) 1.1 string (字符串) Redis 所有的数据结构都是以唯一的 key字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结 构的差异就在于 value 的结构不一样 字符串结构使用非常广泛 常见的用途就是缓存用户信息。我们将用户信息结构体使用 JSON 序列化成字符串,然后将序列化后的字符串

2020-11-03 09:02:32 134

原创 Netty权威指南阅读笔记(编解码)

6.1 Java序列化的缺点 6.1.1 无法跨语言 无法跨语言是java序列化最致命的问题 对于跨进程的服务调用 服务提供者可能会使用其它语言开发 当我们需要和异构语言进行交互时 java序列化就难以胜任 对于java序列化技术是java语言内部的私有协议 别的语言无法进行反序列化 严重阻碍它的应用 目前几乎所有流行的Java rpc框架 都没有使用java序列化作为编解码框架 原因就是因为它无法跨语言 6.1.2 序列化后的码流太大 public class UserInfo implements Se

2020-11-02 09:38:36 147

Netty

1.3 Netty的核心组件 1.3.1 Channel Channel是JavaNIO的一个基本构造 可以把 Channel 看作是传入(入站)或者传出(出站)数据的载体。它可以被打开或者被关闭,连接或者断开连接。 1.3.2 回调 Netty 在内部使用了回调来处理事件 当一个回调被触发时,相关的事件可以被一个 ChannelHandler 的实现处理 当一个新的连接已经被建立时,ChannelHandler 的 channelActive()回调方法将会被调用,并将打印出一条信息 1.3.3 Futu

2020-10-31 08:34:52 192

原创 Spring实战阅读笔记(装配Bean)

2.1 Spring配置的可选方案 1.Spring配置的可选方案 2.在Java中进行显式配置 3.隐式的bean发现机制和自动装配 2.2 自动化装配bean Spring从两个角度来实现自动化装配 组件扫描(component scanning) : Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring) : Spring自动满足bean之间的依赖 2.2.1 @Component 创建可被发现的Bean @Component public class HelloWor

2020-10-25 16:09:16 124

原创 Java多线程编程核心技术阅读笔记(线程通信)

3.1 等待/通知机制 public class WaitDemo { private List list = new ArrayList(); public void add() { list.add("demo"); } public int size() { System.out.println(list.size()); return list.size(); } public static cl

2020-10-18 11:43:11 99 2

原创 Java多线程编程核心技术阅读笔记(对象变量的并发访问)

2.1synchronized同步方法 非线程安全 会在多个线程对同一个对象中的实例变量进行并发访问时发生 产生的后果就是脏读也就是读到的数据其实是被改过的。 而线程安全就是以获得的实例变量的值是经过同步处理的 不会出现脏读现象 2.1.1 方法内的变量为线程安全 ...

2020-10-16 19:34:35 96

原创 Java多线程编程核心技术阅读笔记(Java多线程技能)

1.1 Java进程和多线程的概念及线程的优点 线程可以理解成是在进程中独立运行的子任务 多线程可以最大限度地例用CPU的空闲时间来处理其它任务 比如一边让操作系统处理正在由打印机打印数据 一边使用WORD编辑文档 而CPU在这些任务之间不停地切换 由于切换速度非常快 给使用者的感受就是这些任务似乎在同时运行 单任务的特点就是排队执行 也就是同步 CPU利用率大幅度降低 在多任务的环境中 CPU可以完全在任务1和任务2之间来回切换 使任务2不必等到10秒再运行 系统的运行效率大大提升 1.2 使用多线程

2020-10-14 20:56:21 97

原创 Java8实战阅读笔记(用Optional取代null)

public class Person { private Car car; public Car getCar() { return car; } public class Car { private Insurance insurance; public Insurance getInsurance() { return insurance; } } public class Insurance { private

2020-10-13 17:25:05 97 1

原创 Java8实战阅读笔记(默认方法)

简而言之,向接口添加方法是诸多问题的罪恶之源;一旦接口发生变化,实现这些接口的类往往也需要更新,提供新添方法的实现才能适配接口的变化。如果你对接口以及它所有相关的实现有完全的控制,这可能不是个大问题。但是这种情况是极少的。这就是引入默认方法的目的:它让类可以自动地继承接口的一个默认实现。 public interface Resizable extends Drawable{ int getWidth(); int getHeight(); } public

2020-10-13 17:15:35 67

原创 Java8实战阅读笔记(重构设计模式)

8.1 策略模式 策略模式包含三部分内容 一个代表某个算法的接口(它是策略模式的接口) 一个或多个该接口的具体实现,它们代表了算法的多种实现(比如,实体类ConcreteStrategyA或者ConcreteStrategyB) 一个或多个使用策略对象的客户 public interface ValidationStrategy{ boolean execute(String s); } // 不同得策略 public static class IsAllLowerCase

2020-10-13 13:36:37 116

原创 Java8实战阅读笔记(流操作)

4.4 流操作 List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4); // 去重 筛选流 numbers.stream().filter(i ->i % 2 == 0) .distinct(); // 截短流 List<Integer> collect = numbers.stream()

2020-10-13 13:25:04 65

原创 Java8实战阅读笔记(Lambda表达式)

3.1 Lambda 管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表利用Lambda表达式,可以更为简洁地自定义一个Comparator对象。 // 先前 Comparator<Apple> byWeight = new Comparator<Apple>() { public int compare(Apple a1, Apple a2){

2020-10-13 13:06:23 208

原创 Java8实战阅读笔记(通过行为参数化传递代码)

2 通过行为参数化传递代码 2.1 应对不断变化的需求 2.1.1 实现一个从列表中筛选绿色苹果的功能 public static class Apple { private String color; private int weight; public int getWeight() { return weight; } public void setWeight(int weight) {

2020-10-12 09:12:57 110

原创 <MySQL入门到精通>阅读笔记之性能优化

性能优化简介 MySQL 性能优化就是通过合理安排资源, 调整系统参数使 MySQL 运行更快、 更节省资 源。 MySQL 性能优化包括查询速度优化、 数据库结构优化、 MySQL 服务器优化等。 优化查询 查询是数据库中最频繁的操作, 提高查询速度可以有效地提高 MySQL 数据库的性能 分析查询语句 MySQL 中提供了 EXPLAIN 语句和 DESCRIBE 语句, 用来分析查询语句。 EXPLAIN SELECT * FROM books DESC SELECT * FROM books

2020-09-14 09:02:09 103

原创 <MySQL入门到精通>阅读笔记之索引

索引简介 创建索引 创建表时创建索引 创建普通索引 最基本的索引类型 没有唯一性之类的限制 只是加快对数据的访问速度 CREATE TABLE book( bookid INT NOT NULL, bookname VARCHAR(255) NOT NULL, autoors VARCHAR(255) NULL, info VARCHAR(255) NULL, `comment` VARCHAR(255) NULL, year_pulication YEAR NOT NULL, INDEX(y

2020-09-11 09:06:59 91

原创 <MySQL入门到精通>阅读笔记之插入更新与删除数据

插入数据 为表的所有字段插入数据 // 创建表 CREATE TABLE person( id INT UNSIGNED NOT NULL AUTO_INCREMENT, `name` CHAR(40) NOT NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id) ); INSERT INTO person (id,`name`,age,info) VALUES(1,'green',21

2020-09-10 09:08:21 67

原创 <MySQL入门到精通>阅读笔记之查询数据

基本查询语句 定义数据库表 CREATE TABLE fruits( f_id CHAR(10) NOT NULL, s_id INT NOT NULL, f_name CHAR(255) NOT NULL, f_price DECIMAL(8,2) NOT NULL, PRIMARY KEY (f_id) ) 插入数据 INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES ('al', 101, 'apple',5.2), ('bl', 10

2020-09-09 20:20:08 362

原创 <MySQL入门到精通>阅读笔记之数据表的基本操作

数据库存储引擎 InnoDB存储引擎 事务性引擎 支持事务安全表 ACID 支持行锁和外键 MYSQL5.5.5之后 INNODB 作为默认存储引擎 MylSAM存储引擎 MylSAM拥有较高的插入、查询速度,但不支持事务。MySQL5.5.5之前的版本中,MylSAM是默认存储引擎 MEMORY存储引擎 MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。 存储引擎的选择 如果要提供提交、回滚和崩溃恢复能力的事务安全ACID兼容)能力,并要求实现并发控制,InnoDB是个很好

2020-09-08 20:54:33 148

空空如也

空空如也

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

TA关注的人

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