- 博客(40)
- 收藏
- 关注
原创 idea下载安装
idea下载官网:jetbrains.com点击开发者工具,点击下载点击下载 安装直接点击,next,选择64位直接下一步,安装,成功后勾 Run选择不导入配置文件跳过并使用默认 选择免费使用版 IDEA集成maven file->settings搜索maven选择我们自己安装的maven路径点击importing勾选相应选项...
2022-06-15 14:17:44 2348 1
原创 java io
什么是IO流?IO流就是以流的方式进行输入输出主要用来处理设备之间的传输,文件的上传,下载和复制流分输入和输出,输入流从文件中读取数据存储到进程中,输出流从进程中读取数据然后写入到目标文件。3. 流按照传输的单位怎么分类按照传输单位分为字符流和字节流。字节流的父类是:InputStream,OutputStream字节流的父类是:Reader,Writer常用的IO流有:输入–>InputStream:FileInputStream,BufferedInputStream输出
2022-05-27 11:13:05 248
原创 四大查找·
顺序查找:根据对应的元素在其遍历数组中比较,找到则返回时间复杂度:O(n)public class seqSearch { public static void main(String[] args) { int[] arr = {4,1,8,2,6}; int number = 2; int index = seqSearch(arr,number); System.out.println(index); }
2022-04-18 18:53:39 169
原创 数据库··
书写顺序select->from->where -> group by -> having -> order by -> limit执行顺序from ->where -> group by -> having -> select -> order by -> limi基本命令:创建数据库:create database db1;查看数据库基本信息:show create table db1;删除数据库:drop d.
2022-04-15 18:56:23 413
原创 日志打印的 log4j 的配置
%t 输出产生该日志事件的线程名%M 是输出方法的名字%m 是输出代码指定的日志信息。指定的打印信息的具体格式 ConversionPattern,具体参数:%m 输出代码中指定的消息%p 输出优先级,即 DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该 log 信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名%n 输出一个回车换行符,Windows 平台为"rn”,Unix 平台为"n”%d 输
2022-04-02 20:31:58 692
原创 Spring框架中的五种自动装配方式
no:这是 Spring 框架的默认设置,在该设置下自动装配是关闭的,开发者需要自行在 bean 定义中用标 签明确的设置依赖关系。byName:该选项可以根据 bean 名称设置依赖关系。当向一个 bean 中自动装配一个属 性时,容器将根 据 bean 的名称自动在在配置文件中查询一个匹配的 bean。如果找到的 话,就装配这个属性,如果没找到的话 就报错。byType:该选项可以根据 bean 类型设置依赖关系。当向一个 bean 中自动装配一个属性时,容器将根据 bean 的类型自动在在配置
2022-04-02 12:59:26 1315
原创 多线程(重点)
概念:进程可进一步细化为线程,是一个程序内部的一条执行路径创建多线程: 1.继承Thread类创建多线程:定义一个类继承Thread类,重写run方法,创建该类的实例对象,调用start方法启动线程。 2.实现Runnable接口创建多线程:定义一个类实现runnable接口,创建该类的实例对象o,将o作为构造器参数传入Thread类实例对象,调用start方法启动线程。 3.通过Callable和Future接口创建多线程:创建callable的实...
2022-03-31 22:22:31 1508
原创 Dubbo 的容错机制
1)Failover Cluster 模式 失败自动切换,当出现失败,重试其它服务器。(默认)2)Failfast Cluster 快速失败,只发起一次调用,失败立即报错。 通常用于非幂等性的写操作,比如新增记录。3)Failsafe Cluster 失败安全,出现异常时,直接忽略。 通常用于写入审计日志等操作。4)Failback Cluster 失败自动恢复,后台记录失败请求,定时重发。 通常用于消息通知操作。5)Forking Cluster 并行调用多个服务器,只要一个成功即返回。通
2022-03-31 15:59:46 366
原创 Hibernate 的优化
(1)数据库设计调整。(2)HQL 优化。(3)API 的正确使用(如根据不同的业务类型选用不同的集合及查询 API)。(4)主配置参数(日志,查询缓存,fetch_size, batch_size 等)。(5)映射文件优化(ID 生成策略,二级缓存,延迟加载,关联优化)。(6)一级缓存的管理。(7)针对二级缓存,还有许多特有的策略。(8)事务控制策略。...
2022-03-31 14:24:40 436
原创 Mysql 性能优化
1、当只要一行数据时使用 limit 1查询时如果已知会得到一条数据,这种情况下加上 limit 1 会增加性能。因为 mysql 数据库引 擎会在找到一条结果停止搜索,而不是继续查询下一条是否符合标准直到所有记录查询完毕。2、选择正确的数据库引擎Mysql 中有两个引擎 MyISAM 和 InnoDB,每个引擎有利有弊。MyISAM 适用于一些大量查询的应用,但对于有大量写功能的应用不是很好。甚至你只需要 update 一个字...
2022-03-31 14:22:04 80
原创 Hibernate MyBatis JDBC
Hibernate 和 Mybatis 的区别?两者相同点:1)Hibernate 与 MyBatis 都可以是通过 SessionFactoryBuider 由 XML 配置文件生成 SessionFactory,然后由 SessionFactory 生成 Session,最后由 Session 来开启执行事务和 SQL 语句。其中 SessionFactoryBuider, SessionFactory,Session 的生命周期都是差不多的。2)Hibern...
2022-03-31 12:03:05 127
原创 hibernate 的缓存机制
Hibernate 缓存分为两层:Hibernate 的一级缓存和 Hibernate 二级缓存。1.Hibernate 一级缓存(Session 的缓存):(1)Session 实现了第一级 Cache,属于事务级数据缓冲。一旦事务结束,缓存随之失效。一个 Session 的生命周期 对应一个数据库事务或一个程序事务。(2)Session-Cache 总是被打开并且不能被关闭的。(3)Session-Cache 保证一个 Session 中两次请求同一个对象时,取得的对象是同一个 Java
2022-03-30 23:53:39 2146
原创 Spring 结构
(1)核心容器:包括 Core、Beans、Context、EL 模块。Core 模块:封装了框架依赖的最底层部分,包括资源访问、类型转换及一些常用工具类。Beans 模块:提供了框架的基础部分,包括反转控制和依赖注入。其中 Bean Factory 是容器核心,本质是“工厂 设计模式”的实现,而且无需编程实现“单例设计模式”,单例完全由容器控制,而且提倡面向接口编程,而非面向实 现编程;所有应用程序对象及对象间关系由框架管理,从而真正把你从程序逻辑中把维护对象之间的依赖关系提取出 来,所有这些..
2022-03-30 18:50:15 752
原创 Spring 中的设计模式
1.单例模式——在 spring 的配置文件中设置 bean 默认为单例模式。2. 模板方式模式——用来解决代码重复的问题。 比如:RestTemplate、JmsTemplate、JpaTemplate3. 前端控制器模式——spring 提供了前端控制器 DispatherServlet 来对请求进行分发。4. 试图帮助(view helper)——spring 提供了一系列的 JSP 标签,高效宏来帮助将分散的代码整合在试图中。5. 依赖注入——贯穿于 BeanFactory/Appl
2022-03-30 18:37:17 504
原创 在千万级的数据库查询中,如何提高效率?
1)数据库设计方面a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。b. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, 384 如: select id from t where num is null 可以在 num 上设置默认值 0,确保表中 num 列没有 null 值,然后这样查 询: select id from t where num=0c. 并不是所有索引对查询都
2022-03-30 12:28:10 1188
原创 存储过程与 SQL 的比较
优势:1、提高性能 382 SQL 语句在创建过程时进行分析和编译。 存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进 行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。2、降低网络开销 存储过程调用时只需用提供存储过程名和必要的参数信息,从而可降低网络的流量。3、便于进行代码移植 数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移 植性。4、更强的安全性1)系统管理员可以对执...
2022-03-30 12:18:12 1464
原创 如何提高 MySQL 的安全性
1.如果 MySQL 客户端和服务器端的连接需要跨越并通过不可信任的网络,那么需要使用 ssh 隧道来加密该连 接 的通信。2.使用 set password 语句来修改用户的密码,先“mysql -u root”登陆数据库系统,然后“mysql> update mysql.user set password=password(’newpwd’)”,最后执行“flush privileges”。3.MySQL 需要提防的攻击有,防偷听、篡改、回放、拒绝服务等,不涉及可用性和容错方面。对所有的连
2022-03-30 11:44:15 813
原创 Mysql 存储引擎
(1)、InnoDB 存储引擎 InnoDB 是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,InnoDB 是默认的 引擎。MySQL(2)、MyISAM 存储引擎 MyISAM 基于 ISAM 存储引擎,并对其进行扩展。它是在 Web、数据仓储和其他应用环境下最常使用的存储引擎 之一。MyISAM 拥有较高的插入、查询速度,但不支持事物。(3)、MEMORY 存储引擎 MEMORY 存储引擎将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。(4)、NDB 存
2022-03-30 10:05:56 76
原创 常用的 Linux 命令
列出文件列表:ls 【参数 -a -l】创建目录和移除目录:mkdir rmdir用于显示文件后几行内容:tail打包:tar -xvf 打包并压缩:tar -zcvf查找字符串:grep显示当前所在目录:pwd创建空文件:touch编辑器:vim vi...
2022-03-29 23:12:17 240
原创 JVM 的内存结构和内存分配
a) Java 内存模型Java 虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java 栈和 Java 堆。1、方法区是静态分配的,编译器将变量绑定在某个存储位置上,而且这些绑定不会在运行时改变。 常数池,源代码中的命名常量、String 常量和 static 变量保存在方法区。2、Java Stack 是一个逻辑概念,特点是后进先出。一个栈的空间可能是连续的,也可能是不连续的。 最典型的 Stack 应用是方法的调用,Java 虚拟机每调用一次方法就创建一个方法.
2022-03-27 23:17:52 123
原创 ArrayList 和 LinkedList区别
1.对 ArrayList 和 LinkedList 而言,在列表末尾增加一个元素所花的开销都是固定的。对 ArrayList 而言,主 要是在内部数组中增加一项,指向所添加的元素,偶 尔可能会导致对数组重新进行分配;而对 LinkedList 而言,这 个开销是统一的,分配一个内部 Entry 对象。2.在 ArrayList 的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在 LinkedList 的中间 插入或删除一个元素的开销是固定的。3.LinkedList 不支持高效的随
2022-03-27 14:15:54 91
原创 JAVA的JVM的内存
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)栈区:1.每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区中2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。堆区:1.存储的全部是对象实例,每个对象都包含一个与之对应的class的信息(class信息存放在方法区)。2.jv
2022-03-27 11:47:23 891
转载 dubbo分布式框架
节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中心。 Container: 服务运行容器。调用关系说明: 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费者在启动时,向注册中心订阅自己所需的服务。 注册中心返回服务提...
2022-03-27 10:59:30 57
原创 数组和链表的增删改查速度比较
数组查询快,增删慢链表增删快,查询慢首先我们要知道什么是数组什么是链表,数组和链表都有什么特点,那么这道题才好解答,数组是有序的元素序列,是多个相同类型数据的组合,而链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。数组和链表的特点是什么数组的特点是1.数组是相同数据类型的元素
2022-03-26 22:09:11 2808
原创 String、StringBuffer、StringBuilder 的区别
(1)三者在执行速度方面的比较:StringBuilder > StringBuffer > String(2)String <(StringBuffer,StringBuilder)的原因String:字符串常量;StringBuffer:字符串变量;StringBuilder:字符串变量从上面的名字可以看到,String是“字符串常量”,也就是不可改变的对象。对照这段代码理解这句话:String s = "abcd";s = s+”e”;System.out..
2022-03-26 18:59:14 691
原创 Integer类型数值比较
如果整型字面量的值在-128 到 127 之间,那么不会 new 新的 Integer 对象,而是直接引用常量池中的 Integer 对象,反之会new新的对象
2022-03-26 18:54:32 723
原创 常用的状态码
1xx:表示服务器已接收了客户端请求,客户端可继续发送请求;2xx:表示服务器已成功接收到请求并进行处理;3xx:表示服务器要求客户端重定向;4xx:表示客户端的请求有非法内容;5xx:表示服务器未能正常处理客户端的请求而出现意外错误;状态码描述文本有如下取值:200 OK:表示客户端请求成功;400 Bad Request:表示客户端请求有语法错误,不能被服务器所理解;401 Unauthonzed:表示请求未经授权,该状态代码必须与 WWW-Authenticate 报头
2022-03-26 14:40:51 357
原创 Java 的异常处理
编译时异常、运行时异常、error 和 exception、throw 和 throws、常见的 RuntimeException
2022-03-25 14:19:05 377
原创 抽象类和接口有什么异同
相同:1.不能够实例化2.可以将抽象类和接口类型作为引用类型3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要 被声明为抽象类不同:抽象类: 1.抽象类中可以定义构造器2.可以有抽象方法和具体方法3.接口中的成员全都是 public 的...
2022-03-25 13:05:05 72
原创 两个对象值相同hashcode是否相同
两个对象 x 和 y 满足 x.equals(y) == true,它们的哈希码(hashCode)应当相同。
2022-03-25 12:35:47 3970
原创 SpringBoot Initializr 项目中自动生成的测试类里@RunWith(SpringRunner.class)注解无法使用
解决方法:在pom.xml中添加 junit 依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope></dependency>
2022-03-12 20:21:25 177
原创 ==和equals的区别?
这道题本身很简单,大部分同学能说出区别,但是在面试的时候,如果每一题都有一个分数的话,大部分同学这道题都拿不到高分,如果你只说==比较的是两个对象的地址,equals可以比较地址也可以比较内容的话,只能拿一个及格的分数,那如何说才能提高本题的分数呢?首先要说清==是运算符,用来比较两个对象是否相等。Equals是Object类的方法,用于比较两个对象是否相等。 这才是他们直接最大的区别吧?如果把这个和上面的都说出来,你的分数会由60变成70.我们还要说清==和equals什么时候的作用是相同的。在我
2022-01-19 13:30:19 274
原创 什么是ioc
IOC (Inversion Of Control,控制倒转),是spring的核心,贯穿始终,所谓IOC ,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。所有的类都会在spring容器中登记,告诉spring你是个什么,你需要什么,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同.
2021-12-27 18:39:09 153
原创 mybaits和hibernate区别
共同点MyBaits和HiBernate都是通过ORM对象关系映射框架,都是持久层数据框架。不同点1)HiBernate它重量级的框架,而MyBaits是轻量级的框架。2)HiBerna
2021-12-27 18:36:56 136
转载 springMVC工作流程
1.发送请求2.中央控制器3.处理器映射器4.处理器适配器5.返回请求6.中央控制器1.用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionCh..
2021-12-27 18:33:50 50
原创 常用集合的特点和区别
Collection 接口的接口 对象的集合(单列集合)List 接口:元素按进入先后有序保存,可重复 LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全 查询慢,增删快,效率高,可以存储重复元素 ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全 ...
2021-08-02 15:27:58 158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人