- 博客(55)
- 收藏
- 关注
原创 文件上传
一、创建一个简单的包含WEB依赖的SpringBoot项目pom.xml内容:<!-- Spring Boot web启动器 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web&...
2019-12-27 15:27:44
217
原创 [Java学习笔记]JDK1.8新特性学习(二)Stream API学习
Stream API学习什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。数据源:Stream 的来源。 可以是集合,数组,I/O channel, 产生器generator 等。聚合操作:类似SQL语句一样的操作, 比如filter, map, reduce, f...
2019-12-09 17:36:59
214
原创 [Java学习笔记]JDK1.8新特性学习(一)Lambda表达式
java8 新特性Java8 新增了非常多的特性,我们主要讨论以下几个:Lambda 表达式Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。方法引用方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。默认(Default)方法默认方...
2019-12-09 16:16:59
223
原创 [Java学习笔记]使用RestTemplate调用restful服务
使用RestTemplate调用restful服务什么是RestTemplate?RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求,可以通...
2019-12-05 13:50:06
306
原创 [java学习笔记]MyBatis源码学习笔记(五) 一级缓存
Mybatis中的多级缓存一级缓存一、Cachekey要了解一级缓存,先要了解一个类:CacheKey,它是查询条件的抽象封装体,也就是说,判断一个条件是否是之前查过的,那么就是通过判断Cachekey的相等性也就是Equals方法了当下列特征值相同时,我们认为是相同的查询。statementId要求的查询结果集的范围(RowBounds的offset和limit)传给statem...
2019-11-19 11:55:19
195
原创 [java学习笔记]MyBatis源码学习笔记(四)
接下来看看MappedStatement这个对象是怎么来的,一个mappedStatement对象代表的就是mapperxml内的一个select/insert/update/delete标签,也就是一条sql语句 1 private String resource;//mapper配置文件名,如:UserMapper.xml 2 private Configuration confi...
2019-11-19 11:54:13
177
原创 [java学习笔记]MyBatis源码学习笔记(三)
sql语句的执行流程static { InputStream inputStream = MybatisTest.class.getClassLoader().getResourceAsStream("mybatis-configuration.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().bu...
2019-11-19 11:53:10
129
原创 [java学习笔记]MyBatis源码学习笔记(二)
Mapper映射器的配置就是 标签了,用来进行 sql 文件映射。也就是说我们需要告诉 MyBatis 到哪里去找到这些语句。 Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。<!-- 使用相对于类路径的资源引用 --><mappers> <mapper resource="org/mybatis/...
2019-11-19 11:50:56
176
原创 [java学习笔记]MyBatis源码学习笔记(一)
MyBatis源码学习笔记连接数据库的本质需求:数据源driverurlusernamepassword执行语句DQLDMLDDL操作者ConnectionStatementResultSet分别从上面的三个部分分析源码即可private static SqlSessionFactory sqlSessionFactory; static{...
2019-11-19 11:49:15
157
原创 拦截器 Interceptor 和过滤器 Filter
目录过滤器(Filter) 拦截器(Interceptor) 拦截器(Interceptor)和过滤器(Filter)的区别拦截器(Interceptor)和过滤器(Filter)的执行顺序拦截器(Interceptor)使用过滤器(Filter)使用拦截器(Interceptor)和过滤器(Filter)的一些用途demo 总结 参考资料 正文...
2019-10-24 10:55:19
211
原创 [Java学习笔记]Lock锁和Condition条件
线程高级篇-Lock锁和Condition条件 </h1> <div class="clear"></div> <div class="postBody"> 浅谈Synchronized: synchronized是Java的一个关键字,也就是Java语言内置...
2019-10-23 22:24:08
187
原创 [java学习笔记]静态内部类加载的情况
参考文章:【https://www.cnblogs.com/maohuidong/p/7843807.html】前言: 在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下。一、学习前的疑问: 稍微了解Java虚拟机内...
2019-10-12 14:15:19
417
1
原创 [Java学习笔记]Spring(二)AOP思想及其实现
何为AOP ?AOP(Aspect Oriented Programming)是Spring提供的关键特性之一。AOP即面向切面编程,是OOP编程的有效补充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。这些系统性的编程工作都可以独立编码实现,然后通过...
2019-09-04 22:46:25
170
原创 [Java学习笔记]Spring框架(一)
框架整体我们看到其中核心部分正好对应我们必须导入的四个核心包Beans/Core/Context/SpEL(必须导的包还有log4j、logging)IOCIOC全称inversion Of Control,它是指将对象的创建权力转交给了Spring框架,传统中:比如我们通过在Servlet中自行创建UserService接口下的UserServiceImp类对象完成业务需求,这样虽然...
2019-09-04 20:55:32
168
转载 struts2
前一篇博客中根据Struts2的官方架构图简单的描绘了Struts2运行流程,并解释了一下Struts2中一些核心类的用途。现在我们从...
2019-09-02 16:08:49
116
原创 二叉树前中后序遍历 (递归与非递归)
二叉树是一种非常重要的数据结构,非常多其他数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,深度遍历有前序、中...
2019-09-01 19:55:02
178
转载 [Java学习笔记]Struts2执行原理及流程
Struts2是一套非常优秀的Web应用框架,实现优雅、功能强大、使用简洁。可以说是Struts2是一款非...
2019-08-30 10:32:02
195
转载 Hibernate中HQL的一对多和多对一多表查询
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-08-29 22:48:45
322
原创 [Java学习笔记]Hibernate
Hibernate框架工作模式Hibernate在三层模型中承担的正是Dao(数据访问层)层中的反复sql查询工作实现步骤一、导jar包1.hibernate.final/lib/required下的所有jar包2.数据库驱动类库3.准备数据库4.配置文件准备全局配置文件hibernate.cfg.xml五项必填内容 数据库方言、驱动类名、数据库url、数据库用户名、...
2019-08-26 22:48:46
138
原创 [Java学习笔记]Validate.js插件的使用
Validate表单验证插件(validate.js),是一款验证常规表单数据合法性的插件。使用该插件可以极大的简化了在表单上繁杂的验证过程,并且错误提示显示的完善也增加了用户体验。使用步骤第一步需要引入jquery以及下载的validate.js(jquery需要在插件之前引入) <script type="text/javascript" src="jquery-2.2.3.js...
2019-08-14 23:25:21
242
原创 [Java学习笔记]Ajax技术基本概念以及实现方法
什么是Ajax?Ajax全称为”Asynchronous JavaScript and XML”(异步JavaScript和XML),通过后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,可以在不重新加载整个网页的情况下,对网页的某部分进行更新.Ajax的核心是XMLHttpRequest对象,它是Ajax实现的关键-发送异步请求、接受响应以及执行回调。Ajax的运行原理页面发...
2019-08-14 23:08:16
206
原创 [Java学习笔记]JSP脚本 / EL表达式 / JSTL标签 的使用
一、JSP脚本的使用.1.1 JSP脚本和注释JSP脚本:<%java代码%> ----- 内部的java代码翻译到service方法的内部<%=java变量或表达式> ----- 会被翻译成service方法内部 out.print() 显示内容于页面上( HTML内容翻译为 out.write(); )<%!java代码%>...
2019-08-11 22:47:35
527
原创 [Java学习笔记]JSP九大内置对象
JSP一共有九个内置对象,分别为:request、response、session、application、out、pagecontext、config、page、exception1、request 对象(javax.servlet.http.HttpServletRequest)request 代表客户端的请求信息,主要用于获取客户端的参数和流。主要方法:(1) String get...
2019-08-11 22:00:01
163
原创 [Java学习笔记]JavaWeb中的四大域对象
域对象可以在不同Servlet之间传递数据的对象,就是域对象只要是域对象都有如下方法setAttribute(name,value);存储数据的方法getAttribute(name);根据name获取对应数据值removeAttribute(name);删除数据JavaWeb有 ServletContext、ServletRequest、HttpSession、PageConte...
2019-08-11 21:36:37
261
原创 [Java学习笔记]会话技术Cookie\Session
会话技术简介由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,无状态是指的,无登录状态,即服务器不知道某个用户是否已登录过了。因为服务器不知道客户端是否已登录过了,所以每次都要在交互场景(会话)中请求中带上上一次的请求信息,如账号、密码。需要对比数据库中的账号密码和客户端传的是否一致来确定合法性。由此一来的话就需要在每一项重要操作都要要求用...
2019-08-08 23:40:02
125
原创 [Java学习笔记]重定向和转发
重定向方式一:设定响应头Locationresponse.setHeader(“Location”, URL);方式二:直接调用重定向方法response.sendRedirect(URL);
2019-08-08 22:50:13
234
原创 [Java学习笔记]请求Request和响应Response
图解请求和响应的过程我们知道Servlet本身是单例模式的,每类Servlet在工作过程中只有一个对象参与响应请求,而每次Servlet对象对客户端的请求进行响应时是通过下面这个过程的:响应 Responseresponse代表响应,所以我们可以通过该对象分别设置Http响应的响应行,响应头和响应体,通过response设置响应行设置响应行的状态码setStatus(int sc)...
2019-08-08 20:58:11
935
原创 [Java学习笔记]TomCat和Servlet之间的交互
什么是Servlet?Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应...
2019-08-05 20:57:44
593
原创 [Java学习笔记]ThreadLocal实现不同线程的数据隔离,同一线程的数据共享
ThreadLocalThreadLocal是什么?ThreadLocal的用法(存在意义)一、同一线程内共享数据二、不同线程实现数据隔离ThreadLocal实现机制ThreadLocal是什么?早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。当...
2019-08-02 21:20:26
1753
原创 [Java学习笔记]Mysql性能优化
一、巧用索引一般索引假设我们有一个用户表 tb_user,内容如下:执行SQL语句:SELECT name FROM tb_user WHERE age = 20;默认情况下,MySQL需要遍历整张表,才能找到符合条件的记录。如果在age字段上建立索引,那么MySQL可以很快找到所有符合条件的记录(索引本身通过B+树实现,查起来很快。简单起见,想象一下二分查找和遍历查找的区别。)...
2019-08-01 21:27:01
186
原创 [Java学习笔记]JDBC使用要点
Java DataBase Connectivity1.JDBC原理2.JDBC使用步骤及原理JDBC连接数据库实现登录验证PreparedStatement和Statement1.JDBC原理什么是JDBC?JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,J...
2019-07-31 20:27:13
187
原创 [Java学习笔记]数据库中的视图、序列、索引以及事务
1.视图什么是视图视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。‐‐创建一个简单视图V_EMP_10,来显示部门10中的员工的编码、姓名和薪水:CREATE VIEW v_emp_10AS SELEC...
2019-07-23 10:16:45
224
原创 SQL语句
1.查询中用到的关键词主要包含六个,他们的编写顺序依次为select–from–where–group by–having–order by其中select和from是必须的,其他关键词是可选的。他们的执行顺序依次为from–where–group by–having–select–order by,from:需要从哪个数据表检索数据,这个地方的别名可以在其他地方引用where:过滤表...
2019-07-20 17:04:35
167
转载 [Java学习笔记(转载)]Java中的各种同步锁
转载自: http://blog.youkuaiyun.com/sinat_33087001/article/details/73607625上一篇既然提到了锁,这一篇来详细介绍JAVA中的锁,也为之后JUC下的锁做一个铺垫 其实如果按照名称来说,锁大概有以下名词: 自旋锁 ,自旋锁的其他种类,阻塞锁,可重入锁 ,读写锁 ,互斥锁 ,悲观锁 ,乐观锁 ,公平锁 ,偏向锁, ...
2019-07-16 20:51:55
216
原创 [Java学习笔记]并发编程——Lock的使用
Synchronized\Lock的比较初学Java多线程编程我们发现除了关键字Synchronized以外,还有各种各样的Lock类型,那么我们就会想:既然已经有了Synchronized这个关键字帮助我们实现线程同步,管理资源的有序和谐访问,那么Lock又有什么存在的必要呢?为此我们需要了解Synchronized的缺陷:我们知道在Synchronized同步机制下,获取锁的线程释放锁...
2019-07-16 20:45:47
279
原创 [Java学习笔记]Socket网络编程——附控制台版群聊、私聊系统
网络套接字网络套接字是IP地址与端口的组合。所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号)Java中的套接字ServerSocket类此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结果。Socket类此类实现客户端套接字。Se...
2019-07-11 10:10:08
278
原创 [Java学习笔记]多线程基础(二)
Thread类中常用APIlong getId()返回该线程的标识符。String getName()返回该线程的名称。int getPriority()返回线程的优先级。void interrupt()中断线程。线程同步与线程异步线程同步:是指多线程在并发执行任务的时候,对于特定的资源,只有当一个线程对资源访问结束后,另一个线程才能够访问,也即线程有序地访问资源。线程异步...
2019-07-01 21:57:46
194
原创 [Java学习笔记]多线程基础
了解进程与线程进程:简单的理解——进行中的程序,实际上,进程就是我们操作系统进行资源分配的单位,也是程序运行的载体线程:简单的理解——进程中各种各样的任务,实际上,线程是任务调度的最小单位,一个进程中会有各种的线程在并发执行任务Java中的线程java.lang.Thread 类,即是java中对于线程的封装对象,.我们想要利用多个线程并发执行不同任务,也正是多线程技术,那么就需要使...
2019-06-30 12:03:25
152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人