自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String类详解

Java String类详解1.字符串常量是匿名对象java中字符串"xxx"形式,是String类的匿名对象的形式存在的,字符串是String类的一种简写,字符串是常量,字符串不等于String类,字符串是不可变的."xxx"就一直表示字符串xxx,是常量,而且当这种字符串被声明出来后,就会被存储在字符串常量池中,下一次在使用"xxx"时,就会直接从常量池中去取。注意:(字符串 和 Stri...

2019-08-17 13:33:35 777

原创 netty对websocket协议的实现

websocket协议简单介绍与netty对websocket协议的内部实现逻辑

2022-10-20 00:09:59 6508 2

原创 3-数组

1. ArrayArray是scala对java底层数组元素做的一层封装,Array是一个scala类,创建通过new 或者apply方法,代码反编译后也可以查看到本来的数据类型,都是String[],Array创建时需要声明类型和长度,并且是不支持修改长度的。package cn.chapter6_array/** * scala数组案例: * 1.数组定义:通过new Array[泛型](长度),或者使用Array()的apply方法,泛型可以自动类型推断。 * scala的数组类型,是

2020-10-25 23:51:35 198

原创 2-函数

1. scala class与object二次理解(函数定义上理解)使用上理解为,object中的方法,在其他地方可以通过类名.方法的方式使用,可以认为object中的方法,都是静态方法。但是,实际上是,他们都是普通方法,这些object中的方法,其实是伴生类中的实例方法,之所以可以通过类名.方法,则是因为伴生类中有个静态实例,外部调用这些方法,编译的时候,是编译成获取到静态实例,然后通过静态实例去调用方法。在伴生类中,定义的方法,则里面的方法,是在object名字对应的class中,这个class才是

2020-10-25 00:04:54 185

原创 1-hello word

1. hello安装完成scala,并配置环境变量。1. scala解释器 (REPL)在命令下,输入scala,出现scala窗口,就是scala的解释器,REPL: read(取值) evaluation(求值) print(打印) loop(循环),是scala官方提供的工具,用于快速编译scala代码为字节码,然后交由jvm来执行。计算表达式: 在scala命令行下,键入scala的代码,解释器会直接返回结果,如果没有指定变量存放这个值,那么默认的值就是res开头的变量,而且会显示结果的

2020-10-25 00:01:35 174

原创 Linux(四):文件权限与目录配置

1. 介绍linux是多用户多任务的系统,磁盘上的文件,如果想要保密,则需要设定文件的权限。linux文件的身份分为三类 owner/group/others,每个身份可以划分的权限有 read/write/execute。2. 文件属性[root@study ~]# ls -altotal 48dr-xr-x---. 5 root root 4096 May 2...

2019-12-17 16:49:08 1143

原创 Linux(三): 指令入门

1. 组成linux指令的组成有三部分组成,指令 选项 和参数[mahao@study ~]$ command [-options] parameter1 parameter2 ...[账户名@主机名 当前目录]$ 指令 选项 参数1 参数2上述指令详细说明如下:一行指令中第一个输入的部分绝对是“指令(command)”或“可可执行文件案(例如...

2019-12-16 09:33:04 168

原创 Linux(二): 规划与安装

1. linux安装版本以centos7为例,通常镜像文件有几种:国内centos镜像大全http://man.linuxde.net/download/CentOShttp://mirrors.btte.net/centos/7/isos/x86_64/http://mirrors.cn99.com/centos/7/isos/x86_64/http://mirrors.sohu.c...

2019-12-13 10:36:51 281

原创 Linux(一): 磁盘分区

1. 磁盘分区linux的设备都是以文件命名的,分区命名的文件的规则是什么?如何进行磁盘分区的,一个磁盘可以分多少区,主分区和逻辑分区,分区挂载目录是怎么样的。BIOS和UEFI分别是啥?MSDOS与GPT又是啥?1. 磁盘连接方式与设备文件名的关系现在主流使用的磁盘有两种,SATA接口与SAS接口。linux管理设备是通过文件方式的,会在/dev目录下创建文件,定义的而文件的格式是 /de...

2019-12-11 21:27:52 1941

原创 Spring Boot(八):自定义启动器

1. 启动器构成启动器一般由两部分组成,包括启动器项目和启动器配置项目。一般启动器项目是一个空的项目,引入了配置依赖,和一些辅助依赖,通常主要配置信息都是写在配置项目中。对于这两个项目,命名方式一般是:启动器只用来做依赖导入;专门来写一个自动配置模块;启动器依赖自动配置;别人只需要引入启动器(starter)mybatis-spring-boot-starter;自定义启动器名-spri...

2019-11-30 17:03:56 304

原创 Spring Boot(七):数据访问

1. 原生jdbc引入依赖: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope&g...

2019-11-25 20:48:36 102

原创 Spring Boot(六):Servlet容器

1. 修改配置信息配置信息#servlet容器的修改server.port=80888在配置文件中修改服务器端口,配置文件绑定的配置类是@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)public class ServerProperties implements Embedd...

2019-11-24 18:16:38 313

原创 Spring Boot(五):web模块

主要介绍springboot如何进行web开发的,因为springboot项目是达成jar包运行的,所以他不支持jsp技术,对于这种需要模版引擎技术的支持。关于springboot对web的功能配置,都是在WebMvcAutoConfiguration中,下面的介绍这些配置。1. springboot对静态资源的映射规则sb对静态资源的配置在: @Override public vo...

2019-11-23 21:08:08 625

原创 Spring Boot(四):自动配置原理

对于springboot的自动配置原理,就是spring官方帮助我们写好了默认的配置,我们创建应用直接使用他们写好的配置就行。如果官方没有提供我们需要的场景组件的配置,这个时候,则需要我们去写配置。springboot实现方式是,将现在使用的功能,封装成一个个启动器,当使用某个场景的时候,导入我们需要的启动器,对应的依赖jar包则会自动添加到项目中。springboot在启动的时候,会开启自动配...

2019-11-13 21:29:39 205

原创 Spring Boot(三):配置

这次主要介绍sb的配置使用,包括配置文件,加载顺序,配置原理。配置文件中有两种一般放在resources或者类路径下的config下,配置形式有两种yml语法和properties两种。在maven中resource文件夹是在类路径下(class文件夹下),不是一个新的文件夹。如何在代码中获取到这些配置文件的信息,配置文件值注入。还有Profile的使用,根据环境不同,选择使用...

2019-11-13 21:26:32 191

原创 Spring Boot(二):入门

Spring Boot(二):入门1. 环境配置jdk 1.8maven 3.xidea 开发springboot 1.5.9开发可以使用命令查看各自的版本环境,推荐使用环境相同的配置,减少环境不一致的bug。推荐maven使用下面的镜像仓库:<?xml version="1.0" encoding="UTF-8"?><settings xmlns="ht...

2019-11-13 14:26:23 150

原创 Spring Boot(一):简介

Spring Boot(一):简介简介springboot不是新的框架,他是我们以往学习的框架的集合,它将框架整合进springboot中,我们需要什么要的框架技术,直接从springboot中获取即可,这样减免了配置繁琐。就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。优点快速创建独立运行的Spring项目以及与主流框架集成– 使用嵌入式的Ser...

2019-11-05 10:28:40 124

原创 Redis数据类型与数据结构

8. 对象的类型与编码redis将键和值都封装成了了对象 redisObject,对象中有当前存储的数据(键或者值)的类型,编码,以及存储他们用到的数据结构的指针。比如一个字符串键,redis会创建两个对象,一个是用作字符串键的键,另一个对象是用作字符串键的值。(仔细读这一段话)。举个例子, 以下 SET 命令在数据库中创建了一个新的键值对, 其中键值对的键是一个包含了字符串值 "msg" ...

2019-10-30 22:54:24 205

原创 Redis底层数据结构

1. 简单动态字符串(SDS)redis是用C编写的内存数据库,但是存储的字串符不是C传统的用字符数组表示的形式,而是自己定义了一套名为简单动态字符串的抽象类型。set msg "hello world"对于上面的存储是简单的String类型,他们底层的数据结构将会是:​ 键(key)是一个字符串对象,对象底层保存着一个字符串"msg"的SDS;​ 值也是一个字符串对象,对象底层页...

2019-10-30 22:41:38 269

原创 Redis基本笔记

1. 安装与配置1.1 安装解压 Redis-x64-3.2.100_2.zip,存放到某个文件目录下,重命名为redis文件夹cd命令进入redis文件夹下,我的位置是 C:\softWare\redis测试是否成功:在命令行中输入 redis-server.exe redis.windows.conf,启动redis服务端,出现下面则成功启动客户端,存入数据...

2019-10-09 10:36:15 150

原创 spring IOC

IOC (Inversion of Control)​ 控制反转:对象之间的关系不在由传统的程序来控制,而是由spring容器来统一控制着这些对象的创建、协调、销毁,而对象只需要来完成业务逻辑即可。1. 环境搭建<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.or...

2019-09-27 23:13:40 104

原创 mysql系列 - mysql高级查询

1. 子查询1. where型子查询#查询商品id最大的商品信息select * from goods where id = (select max(id) from goods);#查询每个栏目的最大idselect * from goods where id in (select max(goods_id) from goods group by cat_id)2. from...

2019-09-10 12:34:36 226

原创 mysql系列 -查询

1. 准备查看表的创建语句: show create table [表名]create table goods ( goods_id mediumint(8) unsigned primary key auto_increment, goods_name varchar(120) not null default '', cat_id smallint(5) unsigned n...

2019-09-08 17:33:57 566

原创 mysql系列 - 列类型

数据库的表,每一列都有一种类型的数据声明,数据表的首行是表的描述,表示每列数据代表的意义,换位到文件,就是表头。mysql有三大数据类型,分为​ 数值,日期和字符型1.数值型数值型包括整形和浮点型数据;整形数值:int 系列声明时的参数: (M) unsigned zerofill那tinyint来说,带符号表示的范围是[-128,127],不带符号的表示是[0,255],如何制...

2019-09-07 11:58:29 272

原创 mysql系列-增删改查

3.增删改查复习:mysql> #复习mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || pinyougou...

2019-09-06 15:34:16 119

原创 mysql系列-mysql基础语句

1. 连接服务器用命令行窗口,连接到mysql服务器;mysql -u[用户名] -p[密码]mysql -uroot -p123456当出现mysql>,表示连接服务器成功;2. 查看所有库mysql存储分类由大到小可分为 数据库 >数据表>数据,对应到磁盘就是目录>文件>文件内容。所以mysql服务器就像磁盘,可以有多个数据库(文件夹),用于不...

2019-09-06 11:43:59 131

原创 mysql系列-mysql安装注意

1. mysql安装注意:1.选择安装路径,mysql安装路径和数据保存路径不同执行引擎配置: 针对不同事务的等级要求,选择不同的执行引擎。​ 为InnerBD事务提供支持的表存放位置。环境变量: 勾选上添加到环境变量路径下。报错:对于没有将mysql添加到环境变量中,则会无法连接到mysql服务,如何解决:在PATH 添加mysql的安装文件 C:\P...

2019-09-06 11:37:58 95

原创 Java并发之读写分离设计模式

读 写 锁对资源的访问方式分为两种,一种是 读 一种是写,对于读而言,一个线程在读取资源时,是不需要加锁的,其他线程读取这个资源,是允许的,但是写是不允许的。对于线程间的读写关系,可以用下图表示,current表示当前线程的操作。+-----------------------++current| READ | Write |+-----------------------++ RE...

2019-08-27 00:46:20 219

原创 Java序列化与反序列化

1. 序列化的含义、意义及使用场景Java平台允许创建在内存中可以复用的java对象,但一般情况下,对象只存在于虚拟机运行期,当JVM结束运行,对象就不存在了。序列化就是将内存中的对象,持久化保存,并可以在将来可以重新恢复成对象。**序列化:**将对象写到IO流中**反序列化:**从IO流中恢复对象**意义:**序列化机制允许将实现序列化的Java对象,转换为字节数组,这些字节数组可以保...

2019-08-24 17:57:36 129

原创 java中的值传递与引用传递

首先回顾一下,在程序设计语言中,将有关参数传递给方法(或函数)的一些术语。按值调用(call by value): 表示方法接收的是调用者提供的值。(C中类似普通参数)按引用调用(call by reference): 表示方法接收的是调用者提供的变量地址。(类似传递指针)一个方法可以修改传递引用所对应的变量值,而不能修改按值传递所对应的变量值。 他用来描述各种程序设计语言,不只是Java。...

2019-08-22 17:59:25 189

原创 String 、StringBuffer 、StringBuilder 分析

案例:public static void main(String[] args) { String s = "aa"; StringBuffer buffer = new StringBuffer("bb"); StringBuilder builder = new StringBuilder("cc"); String s2 =...

2019-08-20 18:00:13 85

原创 Java基本数据类型和包装类型

基本类型大小B最小值最大值包装类型boolean-––Booleanchar2Unicode 0Unicode 2^16-1Characterbyte1-128127Byteshort2-2^152^15-1Shortint4-2^312^31-1Integerlong82^632^63-1Lo...

2019-08-20 17:43:47 108

原创 自定义线程池

线程池的代码是简单线程池的实现,里面功能完成了:1.使用固定线程,执行任务2.实现线程池的拒绝策略,以及停止线程池3.线程池的扩容以及回收上面的功能分成三部分完成,有三个版本的代码实现,具体步骤,在代码上有描述:1.使用固定线程,执行任务 1.封装Thread对象WorkThread,使其具有生命状态; 2.初始化创建size个WorkThread,存储到WORK_THREAD_...

2019-08-15 21:27:05 208

原创 servlet完全解析

1. 简介Servlet是J2EE 规范中的一种,主要是为了扩展java作为web服务的功能.从92年到的J2EE 1.2到现在J2EE8 从12个规范到现在20多个规范,越来越完善他的作用就是为java程序提供一个统一的web应用的规范,方便程序员统一的使用这种规范来编写程序,应用容器可以使用提供的规范来实现自己的特性。比如tomcat的代码和jetty的代码就不一样是吧,但作为程序员你只需要...

2019-08-14 16:55:45 255

原创 Java中如何正确的终止线程

sleep,join,wait这样的阻塞方法都必须捕获一个InterruptedException异常,顾名思义就是一个线程中断的异常。在java的线程Thread类中有三个方法,比较容易混淆,在这里解释一下(1)interrupt:置线程的中断状态(2)isInterrupt:线程是否中断(3)interrupted:返回线程的上次的中断状态,并清除中断状态package chapte...

2019-08-11 16:01:35 156

原创 排序算法总结

算法的复杂度工具方法 public static void swap(int[] arr, int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } public static void printArr(int[] arr) { Sy...

2019-08-06 16:18:38 114

原创 内部类 匿名内部类

分享下匿名内部类的案例:内部类的访问规则/** * 内部类的访问规则 * 1.内部类可以直接访问外部类的成员,包括私有 * 2.外部类访问内部类,必须建立内部类的对象 * 3.之所以内部类可以访问外部类,因为内部类中,持有外部类的引用, * 格式: 外部类名.this * * @author mahao * @date: 2019年2月14日 下午1:10:55 *...

2019-07-31 16:09:55 126

原创 Java自动装箱与拆箱

问题题目引入,结果是什么? public static void main(String[] args) { Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Integer e = 321; Integer f = 321; ...

2019-07-30 15:23:47 95

原创 集合体系_LinkedList源码解析

LinkedList源码介绍1.介绍LinkedList是List的实现类,底层实现是通过双向链表来实现的,该类可以实现很多的数据结构,比如队列,双端队列,栈等。分析类的接口public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deq...

2019-07-22 23:25:06 78

原创 ArrayList源码分析

1.List接口该接口继承了Collection接口的方法,除此还有一些特殊的扩展接口。List是Collection体系中,一个子接口分支,该接口允许插入重复元素,支持通过索引,随机的访问集合中的元素。列表通常允许重复的元素。 更正式地,列表通常允许元素e1和e2成对使得e1.equals(e2) ,并且如果它们允许空元素,它们通常允许多个空元素。List接口提供了两种方法来搜索指...

2019-07-18 10:44:35 82

空空如也

空空如也

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

TA关注的人

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