- 博客(122)
- 资源 (7)
- 收藏
- 关注
java源码
01 开篇词:为什么学习本专栏02 String、Long 源码解析和面试题03 Java 常用关键字理解04 Arrays、Collections、Objects 常用方法源码解析05 ArrayList 源码解析和设计思路06 LinkedList 源码解析07 List 源码会问哪些面试题08 HashMap 源码解析09 TreeMap 和 LinkedHashMap 核心...
2020-06-28 14:50:05
236
原创 9.spring发送邮件
1.添加jar包<dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.5</version></dependency><dependen...
2020-02-16 03:51:53
248
原创 接口参数的兼容性
需求:根据商品id或者itemName查询商品详情一个定义了若干个参数的接口,当客户端发起请求而携带的参数个数不确定时,为了能够正常响应,需要对接口做一个适配处理。1.controller层开发@Controller@RequestMapping("/items")public class ItemsController { @Autowired private ItemsServi...
2019-11-07 13:58:12
1349
原创 单文件上传/下载
1.添加依赖<!-- 文件上传 --><dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version>...
2019-11-07 13:55:35
216
原创 Dom4j生成/解析Xml文件
解析1.引入依赖<!-- dom4j --><dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.0</version></dependency>2....
2019-11-07 13:50:51
162
原创 IDEA将Maven项目打包成war包并部署
1.将web项目通过maven打包成war包(pom文件中的打包方式为war)2.将war包复制到tomcat的webapps目录下3.修改server.xml,在Host配置段中添加如下内容<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> //...... <...
2019-11-07 13:46:18
2881
原创 Tomcat目录结构详解
1.bin目录该目录下存放的是二进制可执行文件,主要有4个文件。tomcat6.exe:在控制台下启动Tomcat。tomcat6w.exe:弹出UGI窗口启动Tomcat。startup.bat:startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动。shutdown.bat:shutdawn.bat用来停止Tomcat;2.conf目录...
2019-11-07 13:45:34
177
原创 8.Spring整合HttpClient
1.添加jar包<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version></dependency>2.s...
2019-11-07 13:40:04
124
原创 JVM的内存模型
1.程序计数器1.1. 什么是程序计数器?程序计数器是一块较小的内存空间,可以把它看作当前线程正在执行的字节码的行号指示器。也就是说,程序计数器里面记录的是当前线程正在执行的那一条字节码指令的地址。注:但是,如果当前线程正在执行的是一个本地方法,那么此时程序计数器为空。1.2. 程序计数器的作用字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制在多线程的情况下,程...
2019-11-07 13:34:35
93
原创 Java类初始化顺序说明
一个类会有如下几个内容,类在初始化时他们是有顺序的静态属性:static 开头定义的属性静态方法块: static {} 圈起来的方法块静态方法:static 修饰的方法(被调用才生效)普通属性: 未带static定义的属性普通方法块: {} 圈起来的方法块普通方法: 普通方法(被调用才生效)构造方法: 类名相同的方法1.普通类public class LifeCycle {...
2019-10-28 10:54:02
113
原创 枚举
public enum SeasonEnum { SPRING("1","春天"), SUMMER("2","夏天"), AUTUMN("3","秋天"), WINTER("4","冬天"); SeasonEnum(String key,String value){ this.key = key; this.value = ...
2019-10-28 10:53:17
95
原创 9.Spring整合Redis
1.引入依赖<!--redis--><dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.6.2.RELEASE</ve...
2019-10-25 22:59:46
175
原创 SSM项目搭建
一.创建工程1.创建一个maven项目工程2.创建项目目录3.引入项目所需要的依赖4.部署tomcat并启动项目5.安装mybatis-plugin以及lombokhttps://blog.csdn.net/u010286027/article/details/85853659二.SSM的小demo1.添加spring配置(applicationContext-dao.xml)...
2019-10-07 23:07:56
230
原创 停止线程和守护线程(传智播客)
一.概述1.进程在一个操作系统内,可单独执行的程序都可称之为进程。或者是操作系统给将要运行的程序分配的内存空间。2.线程一个进程内负责代码执行的控制单元或者执行路径。3.多线程一个进程拥有多条执行路径称之为多线程。一个进程至少有一个线程。4.线程任务每一个线程都有需要执行的代码称之为线程任务。5.为什么使用解决代码可以同时执行(线程执行是依赖cpu在线程间快速、随机切换完成的...
2019-10-06 15:16:49
218
原创 线程间的通信和线程调度(传智播客)
一.线程间的通信1.多个线程操作共享资源,但是任务不一样class Resource{ private int num = 1; private boolean flag = false; private String name; public synchronized void set(String name){ if(flag){ try{ this.wait()...
2019-10-06 15:16:12
194
原创 线程同步和死锁(传智播客)
一.同步多线程在操作共享资源时,某一时刻只能有一个线程操作共享资源。1.同步代码块public class MyThread implements Runnable{ private int num = 400; Object obj = new Object(); /* (non-Javadoc) * @see java.lang.Thread#run() */ @Ov...
2019-10-06 15:15:07
133
原创 线程的创建和安全问题(传智播客)
一.线程的创建1.继承Threadpublic class MyThread extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()+"......run called......"); } public ...
2019-10-06 15:14:14
108
原创 多线程的概述和状态(传智播客)
一.概述1.进程在一个操作系统内,可单独执行的程序都可称之为进程。或者是操作系统给将要运行的程序分配的内存空间。2.线程一个进程内负责代码执行的控制单元或者执行路径。3.多线程一个进程拥有多条执行路径称之为多线程。一个进程至少有一个线程。4.线程任务每一个线程都有需要执行的代码称之为线程任务。5.为什么使用解决代码可以同时执行(线程执行是依赖cpu在线程间快速、随机切换完成的...
2019-10-06 15:12:31
161
原创 9.IO流(传智播客)
1.编码public static void main(String[] args) throws UnsupportedEncodingException { String str = "慕课ABC"; byte [] bytes = str.getBytes("utf-8"); for(byte demo:bytes){ System.out.println(Integer.toH...
2019-10-06 13:49:26
187
原创 8.反射(传智播客)
1.简介能够动态获取对象的所有信息以及调用对象方法的功能称之为反射。2.使用案例public class Student { private String name; int age; public Student(String name, int age) { this.name = name; this.age = age; ...
2019-10-06 13:48:45
111
原创 7.泛型(传智播客)
1.简介JDK5.0以后用泛型来接收类需要操作的引用数据类型,当引用的类型不确定时就使用泛型。泛型技术是给编译器使用的,编译器在检查完后,生成的.class文件中不带泛型,原因是泛型是jdk5.0以后出现的技术,类加载器不能识别,这叫做擦除。在运行过程中,又带有泛型,原因是类加载器获取.class字节码文件中运行时类中的数据类型,进行类强制转换,这叫做泛型补偿。2.泛型类public cl...
2019-10-06 13:47:58
103
原创 6.集合(传智播客)
1.简介变量是用来存放数据的容器。对象是用来封装不同数据的。集合是用来存放对象的容器。2.集合体系List(有序,可重复)ArrayList优点: 底层数据结构是数组,查询快。缺点: 线程不安全,增删慢LinkedList优点: 底层数据结构是链表,增删快。缺点: 线程不安全,查询慢Set(唯一)HashSet底层数据结构是哈希表。(无序,唯一)如何来...
2019-10-05 17:04:12
185
原创 5.异常(传智播客)
一.简介程序在运行过程中难免会遇到不正常的情况,比如内存溢出、堆栈溢出、类型转换错误等,java把这些问题用对象进行了封装,帮助我们定位问题。如控制台显示Exception in thread "main" java.lang.StackOverflowError at ErrorAndException.throwError(ErrorAndException.java:5) at Er...
2019-10-05 17:03:02
130
原创 4.常用对象API(传智播客)
1.ObjectObject类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属性和行为,是Java语言设计背后的思维体现。Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入。Object类没有定义属性,一共有13个方法,今天要介绍的是常见的4个非线程方法。pub...
2019-10-05 17:02:28
285
原创 3.面向对象(传智播客)
一.简介1.面向过程和面向对象面向过程:解决问题时关注动作,将动作用函数封装起来,然后再一一调用。面向对象:解决问题时关注对象,因为对象包含了特征和功能,找到对象即找到了功能。2.类类是用来描述对象的,是对对象共性内容的抽象。3.对象世界万物皆对象,对象是包含属性和方法的实例。如:小明 男 21岁 吃饭 打篮球小红 女 20岁 吃饭 跳舞4.类和对象的关系类是用来描述对象...
2019-10-05 16:58:39
165
原创 2.控制结构(传智播客)
1.顺序结构2.选择结构if elseswitchpublic static void main(String[] args) { System.out.println(fun(2));}private static String fun(int i) { String str = ""; switch(i){ case 1: ...
2019-10-05 16:57:33
110
原创 1.语言基础(传智播客)
1.关键字java赋予一些单词以java含义,这些单词只能为系统使用,称之为关键字。保留字是保留下来还未使用的关键字。2.标识符由字母、数字、下划线和$组成的可以用来表示变量名、方法名和类名的。开头不能是数字。不能含有标点符号和空格。不能是关键字。3.注释单行注释多行注释//这是一行单行注视/** * 这是一个多行注视 **/4.常量在程序运行过程中,值...
2019-10-05 16:55:39
87
原创 show index from table_name返回列解释
show index from table_name这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用的索引。下面介绍下 这个命令显示的结果列的含义Table:表的名称。Non_unique :如果索引不能包括重复词,则为0。如果可以,则为1。Key_name:索引的名称。Seq_in_index: 索引中的列序列号,从1开始。Column_name :列名称。Collat...
2019-09-12 10:30:55
609
原创 7.Spring的定时任务
1.使用注解方式注册任务<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm...
2019-06-14 08:50:46
191
原创 6.事务管理(慕课网)
1.概念事务是指逻辑上的一组操作,这些操作要么同时执行成功,要么同时执行失败。2.特性原子性一致性隔离性永久性3.接口介绍Spring为事务管理提供了3个高层抽象的接口。平台事务管理器(PlatformTranctionManager):为不同的持久层框架提供了具体的实现类。事务定义(TransactionDefinition):定义事务的隔离级别以及事务传播特性等信息。...
2019-06-09 20:20:47
372
原创 8.日期操作
1.增加或者减少时间间隔select date_add(now(), interval 1 day); select date_add(now(), interval 1 hour); select date_add(now(), interval 1 minute); select date_add(now(), interval 1 second);select dat...
2019-05-17 12:33:25
90
原创 8.Filter(传智播客)
1.简介过滤器是用于拦截客户端的请求,完成预处理或者后处理等特殊的操作。分IP统计访问次数粗粒度权限管理全站编码处理2.Filter接口的生命周期方法(与Servlet很像)init(FilterConfig filterConfig):在项目启动成功后由服务器创建Filter对象,然后立即执行该方法完成初始化。doFilter(ServletRequest req,Servl...
2019-04-18 14:06:13
116
原创 7.Listener(传智播客)
1.简介Listener是一个接口,主要用于监听三大域的创建、销毁以及属性的变更,监听器可以在事件发生前后做一些处理。2.常用场景统计在线人数页面访问量的统计应用启动时完成信息初始化工作3.创建与销毁public class MyServletRequestListener implements ServletRequestListener { @Override ...
2019-04-17 16:50:11
102
原创 6.HttpSession(传智播客)
1.简介由javaWeb提供,用来进行会话跟踪的是Servlet的三大域之一,因此也有getAttribute、setAttribute、removeAttribute方法
2019-04-16 21:49:17
188
原创 5.Cookie(传智播客)
1.简介Cookie是在服务端创建,发送到客户端保存下来,然后在浏览器下一次请求的时候带上交给服务端进行校验。一个Cookie最大4KB服务器端最多保存20个Cookie客户端做多保存300个Cookie2.用途跟踪客户端状态保存购物车信息(不能使用request,因为购物车是一个用户向服务器发送的多个请求)显示上一次登录名3.使用向浏览器设置Cookie:respo...
2019-04-15 18:56:40
112
原创 4.Request(传智播客)
1.常用API获取客户端IP:getRemoteAddr()获取请求方式:getMethod()获取请求头:getHeader(),getIntHeader(),getLongHeader()protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, I...
2019-04-14 17:11:58
146
原创 3.Response(传智播客)
1.服务器处理请求过程服务器每接收到一个请求,服务器就会创建一个request对象来封装请求数据,并且服务器也会创建一个response对象,然后服务器传递这2个参数到Servlet的生命周期方法service中,service方法完成参数的强制转换,转换为HttpServletRequest和HttpServletResponse之后,调用非生命周期service方法,在里面获取请求的方法,然...
2019-04-12 15:08:46
122
原创 2.ServletContext(传智播客)
1.简介服务器会在项目启动时创建一个ServletContext对象,在服务器关闭时销毁该对象,它的作用是在整个应用之间共享数据。2.获取ServletContext对象ServletConfig的getServletContext()GerericServlet的getServletContext()HttpSession的getServletContext()ServletCon...
2019-04-11 17:38:49
88
原创 1.Servlet(传智播客)
1.为什么使用servletservlet是运行在web服务器上的java程序(是什么),可以对来自浏览器或者其他http客户端的请求进行处理。前提是需要把servlet对象部署到web容器中。2.servlet的架构3.Servlet 包Java Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。Servlet 可以...
2019-03-09 17:14:37
198
原创 1.单实例安装(Windows版)
1.安装JDK环境和配置环境变量,已安装的在cmd中输入java –version检验,会有如下输出2.官网下载需要的es版本并解压,主目录如下3.运行cmd,进到es的bin目录下,输入以下命令进行es服务安装elaselasticesearch.bat运行es,此时主目录会生成data和log文件夹且es会在启动运行中4.将es安装成windows的服务service ...
2019-02-21 17:59:11
178
Java并发编程的艺术
2019-04-10
Java程序员修炼之道
2019-04-10
Spring技术内幕
2019-04-10
Maven实战(机械出版社)
2019-02-16
Git权威指南
2019-02-16
零基础学Java(第2版)
2019-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人