- 博客(25)
- 收藏
- 关注
原创 Effective Java--读书笔记(一)【持续更新中】
前言由于很多人的安利,我发现《Effective Java》这本书可谓是神书,这上面有不少对于传统编码方式的特殊简介以及改进方式。所以本人决定在阅读的过程中,将书中的知识点以及扩展写在这个系列中。帮助想一起学习深入研究Java的小伙伴们来初步了解此书,本系列主要是对知识点的阐述,以及部分代码实现。适合于底层的初级挖掘和养成优秀的代码习惯。本人可以算是刚步入java开发的大门,是用业余时间来写分享这本书。如果在本系列中发现有什么不对的,或者更深层的理解。特别欢迎大家来指正,本人会很开心滴~~。因为群策群.
2020-12-23 17:51:48 394 1
原创 集合面试题
面试官:请你说一下对集合的理解思路:顺序清晰,根据所学顺序依次讲解,分为list,set和map。步骤:1. 集合底层2. 集合实现原理3. 集合之间的区别4. 你对集合的见解(加分项)5. 在开发中怎么使用集合的示例:ArrayList首先list和set接口是继承了collection接口,list是有序的,其中每一个元素都有一个索引,第一个元素的索引是0,然后依次+1,set接口是无序.ArrayList是一个动态数组,它允许任何符合规则的元素插入,甚至是null,在jdk.
2020-12-02 13:20:25 142 2
原创 JavaSE系列——Java的三种常用排序(Demo)
Java的三种常用排序冒泡排序选择排序工具类排序建议直接copy代码,运行一下以便以理解import java.util.Scanner;import java.util.Arrays;class BubbleSort { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("长度:"); int len = sc.nextIn
2021-01-08 09:24:55 1081 1
原创 JavaSE系列——基本数据类型转换(Demo)
基本数据类型转换自动向上转型强制向下转型建议直接copy,利用控制台进行理解public class TestDateType{ public static void main(String[] args){ byte b = -128; short s = 32767; int i = 210000000; long l1=100; long l2 = 3000000000000L; System.out.println(b); System.out.p
2021-01-08 09:20:01 1433
转载 RSA加密、解密、签名、验签的原理及方法
一、RSA加密简介RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。二、RSA加密、签名区别加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说,加密是为了防止信息被
2021-01-06 14:43:34 240
原创 为什么查询速度会慢
1 为什么查询速度会慢查询速度最重要的就是响应时间。把查询看做是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定时间。如果要优化查询任务优化其子任务消除其中一个子任务减少任务的执行次数让子任务运行的更快查询的生命周期:从客户端到服务器在服务器上进行解析,生成执行计划执行(整个生命周期最重要的阶段)返回结果给客户端执行包括大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序,分组等。完成这些任务的时候,查询需要在不同的地方花费时间。包括网络,CPU计算,
2020-12-30 18:05:33 153
原创 《高性能MySQL》读书笔记——第五章:创建高性能的索引
1 索引基础索引是存储引擎用于快速找到记录的一种数据结构。也可以叫做键(key)在Mysql中,存储引擎在索引中找到对应值,然后根据匹配的索引记录找到对应的数据行。如下例SELECT first_name FROM sakila.actor WHERE actor_id = 5;如果在actor_id列上建有索引,则Mysql根据索引找到actor_id为5的行。Mysql先在索引上按值进行查找,然后返回所有包含该值的数据行。索引可以包含一个或多个列的值。所以列的顺序也很重要。因为Mysq
2020-12-29 18:05:52 135 2
原创 《高性能MySQL》读书笔记--第一章MySQL架构与历史
1 MySQl逻辑框架架构图:第一层:不是mysql所独有的,大多数基于网络的C/S的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等等。第二层:大多数Mysql核心服务在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数,所有的跨库引擎功能都在这一层。第三层:包含了存储引擎。存储引擎不会去解析sqlInnoDB是个例外,它会解析外键定义、因为mysql服务器本身没有实现该功能。不同的存储引擎之间也不会相同通信。而只是简单的响应上层服务器的请求。1.1 连接管理和安全性
2020-12-28 13:23:19 577 8
原创 Effective Java--读书笔记(六)【待完成】
第六章 枚举和注解Java支持两种特殊用途的引用类型:一种是类,称作枚举类型;一种是接口,称作注解类型第三十四条:用enum代替int常量34.1 枚举类型简介枚举类型是指有一组固定的常量组合成合法值的类型。34.1.1 int枚举模式之前,我们使用一组常量来表示枚举类型 int枚举模式public static final int APPLE_FUJI =0;如上不具有类型安全性,可读性极差。这里注意每个apple常量是以APPLE_为前缀,每个orange常量是以ORANGE_为前缀
2020-12-25 15:26:15 208 1
原创 Effective Java--读书笔记(三)【待完成】
第三章 对于所有对象都通用的方法第十条:覆盖equals时请遵守通用约定10.1 什么情况下不用覆盖equals类的每个实例本质上都是唯一的。关注的实体本体还不是里面的值的类。例如Thread。类没有必要提供“逻辑相等(logical equality)”的测试功能。例如java.util.regex.Pattern可以覆盖equals,已检查两个Pattern实例是否代表同一个正则表达式。(设计者认为程序员不需要这样的功能)超类已经覆盖了equals,超类的行为对于这个类也是合适的。例如大多数
2020-12-24 17:50:28 186
原创 Effective Java--读书笔记(二)【第一版已完成】
第一章 创建和销毁对象第一条:用静态工厂方法代替构造器类可以提供一个公有的静态工厂方法,他只是一个返回类的实例的静态方法。下例为Boolean的简单示例。这个方法将boolean基本类型值转换成了一个Boolean对象的引用。public static Boolean valueOf(boolean b){ return b? Boolean.TRUE :Boolean.FALSE;}注意:静态工厂方法与设计模式中的工厂方法模式不同静态工厂方法与构造器不同的优势它们有名称:例如构造
2020-12-21 10:23:12 349 2
原创 SLF4J的入门使用
Java的简单日志记录外观(SLF4J)充当各种日志记录框架(例如java.util.logging,logback,log4j)的简单外观或抽象,允许最终用户在部署 时插入所需的日志记录框架。具体实现:导入依赖后测试:会报错SLF4J默认是NOP的logger,就是不对任何进行处理,我们在使用SLF4J的时候要配合其他的真正的log管理应用来实现。例如:log4j,logback。改进一下:加入logback依赖日志打印成功总结:SLF4J回去先去找这个实现,如果找到的话,就会把对
2020-12-07 11:42:58 578
原创 局域网连接
win7 创建vpn1.点击windows键 选择控制面板点击网络和internet网络和共享中心选择设置新的连接网络选择如下图输入vpn信息下一步 输入账号密码点击连接 --跳过关闭后 右击桌面右下角 网络图标打开网络和共享中心–更改适配器设置找到新建的vpn连接 如果处于正在连接状态 点击右下角网卡图标–弹出vpn信息 点击断开如果是断开状态–右击选择属性点击到安全选项卡–数据加密选项选择–可选加密点击网络选项卡–选择协议版本4 点击属性点击高级
2020-12-02 15:37:43 227
原创 项目开发中序列化产生的属性类型不匹配问题(Long类型)
在如今的springcloud作为主流的分布式开发技术,不能避免使用到远程调用,那么在与前端交互的过程中必须要使用序列化与反序列化。那么在序列化的过程中可能会发现类型不匹配的问题。示例:手动处理Long类型序列化1:首先先写工具类,定义LongJsonSerializer和LongJsonDeserializerpublic class LongJsonSerializer extends JsonSerializer<Long> { public static final L.
2020-12-02 11:34:22 531
原创 springboot使用mybatisplus的入门方法
使用Mybatis-Plus的入门1.导入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> &
2020-12-02 10:30:54 96
原创 初学Dao模式设计模式
优点:把数据访问代码抽离出来。降低代码的耦合性和提高扩展性。service接口:业务逻辑层,他的方法命名和功能有关系,exchangeMony add removeservice.impl实现dao接口:数据连接层,他的方法命名是sql语句,selectUserByUserNameAndPassworddao.impl实现model实体类:javaBeanutil数据库工具类:各种通用的工具service==>dao(util,model)接口示例:pu
2020-07-09 11:43:11 151
原创 利用Druid连接池自写JDBCUtil工具类
1.写配置文件:jdbc.properties#\u8FDE\u63A5\u8BBE\u7F6EdriverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/qf2002username=rootpassword=123#initialSize=10#\u6700\u5927\u8FDE\u63A5\u6570\u91CFmaxActive=50#minIdle=5#maxWait=5000名词解释:
2020-07-09 10:29:26 343
原创 输入语句char类型为什么是next().charAt(0)
Scanner sc = new Scanner(System.in);int i = sc.nextInt();double d = sc.nextDouble();String str = sc.next();char c = sc.next().charAt(0);String类中有一个方法为charAt()public char charAt(int index)返回指定索引处的 char 值。Scanner源码中,我们可知输入String类型实际是调用了next()方法,而
2020-06-16 19:51:55 13202 4
原创 String类学习中乱码问题
字符编码:每种编码格式各不相同(eg:ISO-8859-1、GB2312、GBK、UTF-8 )英文等符号只需1位,而中文需要2位或更多来表示Java乱码原因Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序与其他媒介交互产生的乱码问题。首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果J
2020-06-16 19:27:48 1524
原创 【第一阶段项目】万年历
知识点:输入语句输出语句局部变量if,switch结构for循环要求:–>已知1900.1.1是星期一;难点:怎么知道某一年的某一个月的每一天是星期几?怎么将其打印输出?算法思路:想知道某一天星期几,需要算出这一天距离1900.1.1(包含这一天)过去了n天,例:n%7=6,那么这一天就是星期六===>分2步(以2020年6月为例):第一步:算出[1900.1.1,2020.1.1)的天数m天算出[2020.1.1,2020.6.1)到2020.1.1
2020-06-03 14:34:52 197
原创 关于System.out.println(str)打印的是字符串值,而不是地址的问题
Q:为什么会有这种问题呢?A:在我们没有学习Object类的toString方法前,我们打印引用类型对象名,打印出来的是地址值,那么String作为引用类型,打印的应该也是地址值呀.为什么它打印出来的就是字符串本身的值呢.代码举例:String str = "abc";System.out.println(str);输出结果:abc原因:我们首先要记住一个概念:在打印引用类...
2020-04-15 00:29:59 3060
原创 关于Arrays的toString()和Object的toString()的区别
[Arrays的toString()和Object的toString()的不同]不想看过程可直接看结论,结论在最底部First,我们先要搞清楚Object中的toString的用法.toString()的源代码为: public String toString() { return getClass().getName() + "@" + Integer.toHexStri...
2020-04-14 00:18:52 1214 2
原创 JAVASE基础知识总结
文章目录一、概述与环境搭载1.1、Javat特点1.2、Java运行机制1.3、Java名词1.4、目录应用1.5、环境变量二、语言基础2.1、标识符2.2、变量2.2.1、变量三要素2.2.2局部变量2.3、数据类型2.3.1、基本数据类型(4类8种)2.3.2、转义字符2.3.3、引用数据类型2.3.4、类型转换2.4、运算符2.5、表达式三、选择与分支结构3.1、选择结构3.2、分支结构四、...
2020-04-12 10:38:59 444
原创 JAVA面向对象总结
文章目录一、编程思想1、面向过程2、面向对象二、类和对象【重点】2.1 类2.2 对象2.3 实例化一个对象2.4 构造方法2.5 匿名对象三、面向对象的三大特征3.1 封装性3.1.1 概念3.1.2 访问权限修饰符3.1.3 this关键字3.2 继承性3.2.1 概念3.2.2 作用3.2.3 关键字3.2.4 继承的局限3.2.5 子类对象的创建过程3.2.6 super关键字3.2.7 ...
2020-04-11 20:03:05 223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人