- 博客(15)
- 收藏
- 关注
原创 Java 多线程
进程和线程的基本认知进程是一个正在执行的程序,一个程序可以同时执行多个任务(线程)。进程独占内从空间,保持各自的运行状态,相互之间不会干扰,进程是在并发执行程序过程中资源分配和管理的最小单位(资源分配的最小单位)。每个进程都有独立的地址空间,每启动一个进程,系统就会分配地址空间。通常一个任务被称作一个线程,线程有时候会被称为轻量级的进程。它是程序执行的最小单位,一个进程可以有多个线程,多个线程之间共享进程的地址空间以及一些进程级别的其他资源,但是各个线程拥有独立的栈空间。并发和并行的区别并发:多
2020-07-18 18:44:48 229
原创 Spring MVC介绍
介绍Java EE体系结构包括四层,从上到下分别为应用层、web层、业务层和持久。Struts和Spring MVC是web层的框架,Spring是业务层的框架,Hibernate和Mybatis是持久层框架。Spring MVC是一种基于Java,实现了Web的MVC设计模式,请求驱动类型的轻量级web框架,即使用了MVC架构模式的思想,将Web层进行指责解耦,基于请求驱动指的就是请求响应模型。框架存在的目的是帮助简化开发,Spring MVC简化web开发。演进早期的MVC模式是servlet
2020-07-09 17:40:09 380
原创 Java IO
File类基本方法介绍常用方法列举:boolean exists() //表示当前路径是否存在boolean isFile() //判断当前路径是否是文件boolean isDirectory() //判断当前是否为目录boolean isHidden() //判断是否是隐藏文件void deleteOnExit() //在程序退出时删除boolean delete() //直接删除boolean createNewFile() //创建新文件,当前文件不存在时,创建成功返回true,文件
2020-07-01 17:48:40 241
原创 Queue接口下的集合
目录特点继承的接口使用双端队列双端队列作普通队列双端队列作栈其他特点底层数据结构:数组。Collection接口下:存储单值。继承的接口public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, SerializableDeque:双端队列接口。Cloneable:可以使用clone方
2020-06-08 17:16:56 170
原创 MyBatis的使用方法
目录XML配置形式用法注解形式的用法多个参数的传递#{}和${}的区别{}的使用${}的使用动态SQLif标签where标签trim标签(where/set)标签foreach标签模糊匹配动态代理:JDK自带的代理方式CGLib实现代理Mybatis代理模式详解addMapper方法的实现从getMapper入手分析总结MyBatis缓存机制缓存介绍一级缓存二级缓存使用步骤注解形式xml配置形式cache参数说明高级映射以订单数据模型为例一对一映射一对多映射ResultMap和ResultType的总结X
2020-06-03 22:20:07 1008 1
原创 HashTable和HashMap的区别
HashTableHashMap继承的父类和接口extends:Dictionary<K,V> implements:Map<K,V>, Cloneable, java.io.Serializableextends:AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable默认容量1116table的初始化时机构造函数时第一次添加元素时线程安全线...
2020-05-31 15:09:20 190
原创 四种引用及WeakHashMap
四种引用强引用Object object =new Object();String str =“hello”;强引用有引用变量指向时永远不会被垃圾回收,JVM宁愿抛出OutOfMemory错误也不会回收这种对象。软引用如果一个对象具有软引用,只有当内存空间不足了,才会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。主函数class MyArray{ byte[] array = new byte[1024 * 1024 * 3];}public class
2020-05-31 14:34:40 166
原创 Mybatis介绍
前言JDBC存在问题1、在使用JDBC操作数据库前进行连接、操作完成之后关闭连接、并发性能有大的影响解决:为了达到连接复用,采用连接池2、SQL语句硬编码在Java代码中,需求改变需要改变Java代码本身3、返回的结果集存在硬编码的问题...
2020-05-22 18:14:44 170
原创 HashMap问题总结
问题总结HashMap的特点Map<K,V>,以key–value键值对的形式存储数据。key不重复,元素的存储位置由key决定,即可以通过key寻找键值对的位置,从而得到value的值。HashMap如何计算key–Value结果的存储位置?计算key的hashcode,然后对hashcode进行扰动处理,最后和table.length - 1进行按位与处理,得到index(下标)。解决哈希冲突的方法哈希冲突:对hashcode按table.length-1按位与后的
2020-05-17 19:59:36 147
原创 HashMap、LinkedHashMap、TreeMap使用及原理
HashMap介绍特点Collection(存储单值)和Map(存储双值)是集合框架库的两个顶级接口。Map<K,V>,以key–value键值对的形式存储数据。key不重复,元素的存储位置由key决定,即可以通过key寻找键值对的位置,从而得到value的值。继承的接口public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Ser
2020-05-17 19:58:07 380
原创 List接口下的集合
前言:集合简介集合定义:存储数据的容器,是对普通数据结构的封装。集合和其他容器的比较:数据库:数据可以长时间存储,从而可以使数据反复使用。数组/集合:项目运行起来使存入数据,一旦项目结束数据就不存在了,起到暂存作用。数组和集合的比较:数组是静态的,集合是动态的。数组是Java内置类型,效率更高,但集合功能更加全面。数组需要指定类型,集合则可有可无。数组既可以使用普通类型,也可以使用引用类型,而集合只能使用引用类型。集合和数组的选择: 对元素的数量有明确判断后续不会有太多复
2020-05-10 17:43:35 168
原创 MySQL优化
1.书写合适sql语句 用explain分析有没有用到索引,如果没有用到需修改sql语句。 慢查询日志 MySQL可以设置慢查询日志,当SQL执行的时间超过我们设定的时间,这些SQL就会被记录在慢查询日志当中,我们通过查看日志,用explain分析这些SQL的执行计划,来判定为什么效率低下,是没有使用到索引?还是索引本身创建的有问题?或者是索引使用到了,但是由于表的数据量太大,花费的时...
2020-04-01 20:57:25 55
原创 Mysql事务
前言在 MySQL 中只有使用了 Innodb 存储引擎的表才支持事务。将一条sql提交给mysql之后都发生了什么?缓存:InnoDB作为MySQL的存储引擎,数据是存放在磁盘中的,但如果每次读写数据都需要磁盘IO,效率会很低。为此,InnoDB提供了缓存(Buffer Pool)。当从数据库读取数据时,会首先从Buffer Pool中读取,如果Buffer Pool中没有,则从磁盘读取...
2020-03-26 23:39:40 93
原创 sql语句总结之库操作与表操作
一、登录退出数据库1.登录mysql -u 用户名 -pmysql -u root -p1234562.退出quit 或 \q二、库操作1.创建数据库create database 库名;create database school;2.删除数据库drop database 库名;drop database school;3.查看所有库show database 库名;...
2020-03-09 21:19:34 146
原创 Java异常处理
异常Java异常的理解:在程序中异常的意思就是:在程序执行的过程中,出现的非正常的情况,最终导致jvm的非正常停止。异常本身就是一个类,产生异常就创建类对象并抛出了一个异常对象,Java处理异常的方式就是中断异常。需要注意的是异常指的并不是语法错误,语法错了,编译就不能通过,不会产生字节码文件,更不能运行。常出现的异常NullPointerException 空指针异常Arithmeti...
2019-11-25 21:06:45 148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人