![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
培友的Java++
爱运动,爱编程,爱挑战!
展开
-
jdk1.8 stream的常见用法 看完还不会打我
1,集合遍历public class StreamTest { public static void main(String[] args) { //1 遍历 List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); //使用lambda表达式输出list中的每个值 l原创 2021-04-16 16:41:14 · 523 阅读 · 0 评论 -
Spring Boot 使用 AOP 记录日志(简单到爆炸)
在项目开发中经常,日志系统是必不可少的,特别是管理系统,对于重要的操作都会有操作日志,然而这个操作不需要我们在相应的方法中一个一个的去实现,这肯定是不合适的,这样的操作无疑是加大了开发量,而且不易维护,所以实际项目中总是利用AOP(Aspect Oriented Programming)即面向切面编程来记录系统中的操作日志。下面就来介绍如何在 Spring Boot 中 使用 AOP 记录日志:首先加入 AOP 依赖:<dependency> <groupId>org.原创 2021-03-03 16:01:07 · 647 阅读 · 4 评论 -
创建线程的三种方式
简单地说,有一下三种继承Thread实现Runable接口实现Callable接口(可以获取线程执行之后的返回值)但实际后两种,更准确的理解是创建了一个可执行的任务,要采用多线程的方式执行,还需要通过创建Thread对象来执行,比如 new Thread(new Runnable(){}).start();这样的方式来执行。在实际开发中,我们通常采用线程池的方式来完成Thread的创建,更好管理线程资源。案例一:class MyThread extends Thread{原创 2021-03-01 15:25:49 · 150 阅读 · 0 评论 -
java异常体系,一看就懂
Error是虚拟机内部错误栈内存溢出错误:StackOverflowError(递归,递归层次太多或递归没有结束)堆内存溢出错误:OutOfMemoryError(堆创建了很多对象)Exception是我们编写的程序错误RuntimeException:也称为LogicException为什么编译器不会要求你去try catch处理?本质是逻辑错误,比如空指针异常,这种问题是编程逻辑不严谨造成的应该通过完善我们的代码编程逻辑,来解决问题非RuntimeException:...原创 2021-03-01 11:10:14 · 149 阅读 · 0 评论 -
ssm框架,处理时间最简单实用的两种方式
在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日期转换处理的问题了。好了,直接进入主题方法一:实体类中加日期格式化注解@DateTimeFormat(pattern = "yyyy-MM-dd")private Date receiveAppTime;关于@JsonFormat注解该注解加在实体类中的日期类型上,可以将返回的Json字符串中的时间...原创 2019-11-19 09:47:59 · 9504 阅读 · 0 评论 -
java web项目代码不报错但是项目左上角有个红叉之解决方案
使用myeclipse开发,代码文件没有任何报错,不管是java文件、jsp文件还是xml文件,总之项目下的任何文件都是正常的,没有任何报错提示,但是项目图标的左上角就是有个红叉;解决方案:(1).请检查build path中Libraries下的jar包是不是有报错提示。(2).请检查你的各处java版本配置是否一致,体现在三个地方:build path中jre版本,java c...原创 2019-10-29 16:54:47 · 1642 阅读 · 0 评论 -
Java 一张图总结基础知识
原创 2019-10-23 17:10:15 · 27498 阅读 · 0 评论 -
JSP页面用EL表达式 输出date格式
JSP页面用EL表达式 输出date格式 1、头上引入标签<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 2、<fmt:form转载 2018-10-29 08:33:42 · 447 阅读 · 0 评论 -
Spring框架IOC容器和AOP解析
主要分析点:一、Spring开源框架的简介 二、Spring下IOC容器和DI(依赖注入Dependency injection)三、Spring下面向切面编程(AOP)和事务管理配置 一、Spring开源框架的简介 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-O...转载 2018-10-31 08:12:02 · 280 阅读 · 0 评论 -
JSTL标签详细教程
JSTL(JSP Standard Tag Library,JSP标准标签库),目前最新版本是1.2,包括四个标签库(core、format、xml、sql),这一篇主要讲解JSTL的核心库即core标签库,核心库标签共有14个,从功能可以分为四大类:逻辑控制、表达式控制、循环判断、URL操作。一、开发前准备。1、确保classpath下有standard.jar,jstl.jar。2...转载 2018-10-24 15:07:31 · 554 阅读 · 0 评论 -
'sessionFactory' or 'hibernateTemplate' is required报错及其解决办法
项目中所有Dao实现类都继承了HibernateDaoSupport接口,如果Dao或配置文件中没有'sessionFactory' 或者'hibernateTemplate'就会报错解决办法:在Dao中添加下面这个方法 @Resource(name="sessionFactory") public void setSessionFacotry(SessionFactory s...原创 2018-10-24 17:04:31 · 527 阅读 · 0 评论 -
java中 implement和extends的作用和区别详细解释
一、extends是继承类,implements是实现接口。 类只能继承一个,接口可以实现多个。 extends继承父类的时候可以重写父类的方法,也可以调用父类的非私有方法;implements实现接口,必须实现接口的所有方法。二、extends后面跟的是类,表示继承关系; 如public class Dog extends Animalimplements后面跟的是接口,表...原创 2018-10-30 11:47:25 · 9098 阅读 · 0 评论 -
SSM框架原理,作用及使用方法,详细解释
1、基本概念 1.1、Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来...原创 2018-10-30 17:17:12 · 14642 阅读 · 1 评论 -
SpringMVC中利用@InitBinder来对页面数据进行解析绑定
在使用SpingMVC框架的项目中,经常会遇到页面某些数据类型是Date、Integer、Double等的数据要绑定到控制器的实体,或者控制器需要接受这些数据,如果这类数据类型不做处理的话将无法绑定。 解决方法:使用注解@InitBinder来解决这些问题,这样SpingMVC在绑定表单之前,先注册这些编辑器(@InitBinder)。一般会将这些方法些在utilController...原创 2018-11-03 10:58:10 · 5255 阅读 · 0 评论 -
java遍历list取值
1、public void testSelectQuestionTypeByExample1() { List<QuestionTypeEntity> list = new ArrayList(); list = questionTypeManagerFacade.selectQuestionTypeByExample(); for ...原创 2018-11-07 16:27:22 · 13949 阅读 · 0 评论 -
Maven常用命令及在Eclipse中的应用
1、常用命令mvn archetype:generate--构建项目 mvn clean--项目清理 mvn test--项目单元测试的编译 mvn compile--项目源代码的编译 mvn package--项目打包 mvn install--发布项目提交到本地仓库 mvn deploy--发布项目到 mvn jetty:run--启动jetty容器 ...转载 2018-11-27 16:10:44 · 221 阅读 · 0 评论 -
java.lang.OutOfMemoryError异常解决方法总结及解决办法
常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;3.代码中存在死循环或循环产生过多重复的对象实体;4.使用的第三方软件中的BUG;5.启动参数内存值设定的过小;常见错误提示:1.tomcat:java.lang.OutOfMemoryError: PermGen space2...原创 2019-05-16 08:32:49 · 6218 阅读 · 0 评论 -
spring中18个注解,你会几个?详解解释
1、@Controller标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象.2、@RestControllerSpring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默...转载 2019-09-19 10:32:37 · 2849 阅读 · 0 评论 -
HQL语句总结和说明
特点: 与SQL相似,SQL中的语法基本上都可以直接使用。 SQL查询的是表和表中的列;HQL查询的是对象与对象中的属性。 HQL的关键字不区分大小写,类名与属性名是区分大小写的。 SELECT可以省略. 注意:简单的查询,Student为实体名而不是数据库中的表名 hql = "FROM Student"; hql = "FROM Stud...原创 2018-10-21 21:32:33 · 361 阅读 · 0 评论 -
java对象与json对象间的相互转换详细解释
1.简单的解析json字符串首先将json字符串转换为json对象,然后再解析json对象,过程如下。JSONObject jsonObject = JSONObject.fromObject(jsonStr); [java] view plain copy<pre></pre><span style="white-space:pre">&l...原创 2018-10-10 20:40:39 · 3405 阅读 · 0 评论 -
Java 重写(Override)与重载(Overload)区别
重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Except...原创 2018-06-25 20:15:30 · 217 阅读 · 0 评论 -
Java常见异常总结
1. java.lang.NullPointerException(空指针异常) 调用了未经初始化的对象或者是不存在的对象经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行...原创 2018-06-04 14:47:23 · 1824 阅读 · 0 评论 -
MyEclipse快捷键大全
MyEclipse快捷键大全-------------------------------------MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 快速修复Ctrl+D: 删除当前行 Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某行 Ctrl+O 快速显示 OutLine Ctrl+T 快速显示...原创 2018-06-22 15:53:52 · 395 阅读 · 1 评论 -
Eclipse快捷键大全,导包快捷键:ctrl+Shift+/
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+En...原创 2018-06-22 11:13:56 · 2050 阅读 · 0 评论 -
Java对日期Date类进行加减运算,年份加减,月份加减
摘要: Java对日期Date类进行加减运算,年份加减,月份加减 Date d=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); System.out.println("今天的日期:"+df.format(d)); System.out.println("两天前的日期:" + df.format...原创 2018-05-31 15:41:31 · 3328 阅读 · 0 评论 -
日期操作类(DateFormat与SimpleDateFormat)的区别和使用详解
一、DateFormat类此类是一个日期的格式化类,用来格式化日期。具体日期可以通过java.util.Date类来获取。DateFormat类的定义:此类是定义在java.test包中的。public abstract class DateFormat extends Format11.1、实例化DateFormatDateFormat是一个抽象类,按照以住的思路,直接使用其子类实例化即可。但是...转载 2018-05-31 14:52:03 · 10214 阅读 · 6 评论 -
String,StringBuffer与StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字...原创 2018-05-29 10:15:04 · 33746 阅读 · 0 评论 -
Win10+Java7环境配置
安装包:jdk-7u79-windows-x64-20151024打开安装目录双击运行程序,出现安装程序点击下一步,更改安装路径(目的是为了保证安装目录的规范,尽量不要出现汉字和空格)更改为E盘(安装程序尽量不要安装在C盘,因为D盘不能使用,所以安装在E盘,但习惯将程序安装在D盘比较好管理)其中jdk1.7.0_79不要改动,因为之后可能会用到其它java版本,这样方便记录。点击下一步出现如下提示...原创 2018-05-15 10:38:56 · 1320 阅读 · 0 评论 -
Java中@Override的作用
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1、可以当注释用,方便阅读;2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。 举例:在重写父类的onCreate时,在方法前面加上@Ov...转载 2018-06-26 11:45:01 · 244 阅读 · 0 评论 -
JDK,JRE,JVM区别与联系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。 今天特写此文,来整理下三者的关系。 JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/j...原创 2018-07-04 20:15:42 · 152 阅读 · 0 评论 -
Java序列化接口Serializable的作用详细说明
1、Java序列化接口Serializable的作用:序列化能把堆内存中的对象的生命周期延长,做持久化操作.当下次再需要这个对象的时候,我们不用new了,直接从硬盘中读取就可以了.(存储到硬盘是一个文件,不需要我们去解析,如果用记事本打开解析会出现乱码,解析要用特定的方式,不用我们管. 我们只需要读取). 把对象存储到硬盘上的一个文件中,这个文件的标准扩展名是(.object).什么样的...原创 2018-10-08 09:30:24 · 918 阅读 · 0 评论 -
myeclipse 启动tomcat server的console乱码问题
我的workspace的编码确实是UTF-8,我的文件编码,JSP编码都是UTF-8,为何启动eclipse启动tomcat依然乱码呢。我找到了解决办法。解决问题之前,如图:解决的办法:进入myeclipse配置tomcat的地方,给JVM添加参数 -Dfile.encoding=UTF-8 这样之后,console就不乱码了。如图: ...原创 2018-10-07 10:05:12 · 562 阅读 · 0 评论 -
java包装类与基本数据类型的相互转换,integer进制输出
原创 2018-09-23 16:22:36 · 352 阅读 · 0 评论 -
解决myEclipse中文乱码问题
用的是MyEclipse开发环境,Window->General->Workspace下的编码、控制台的编码、项目的编码都是UTF-8,就连代码都设置了UTF-8读取,结果还是中文乱码,实在奇葩,最后终于发现了解决方法,修改MyEclipse的配置文件,在myeclipse的安装目录下,myeclipse.ini,就是这个配置文件,用记事本打开,在最后添加一句:-Dfile.enc...原创 2018-09-12 09:33:14 · 3965 阅读 · 2 评论 -
JAVA中extends 与implements有啥区别?
JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类...转载 2018-07-26 09:58:41 · 194 阅读 · 0 评论 -
Java实例详细讲解ArrayList用法
Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征。可以随时从链表中添加或删除一个元素。ArrayList实现了List接口。大家知道,数组是静态的,数组被初始化之后,数组长度就不能再改变了。ArrayList是可以动态改变大小的。那么,什么时候使用Array(数组),什么时候使用ArrayList?答案是:当我们不知道到...原创 2018-07-07 14:55:55 · 440 阅读 · 0 评论 -
java中的构造方法详细解释
java中的构造方法是用来初始化一个对象的,并为为实例变量赋予合适的初始值。因此构造方法不需要返回类型。 构造方法必须满足以下语法规则: (1)方法名必须与类名相同; (2)不要声明返回类型; (3)不能被static、final、synchronized、abstract和native修饰; (4)构造方法不能被子类继承,所以用final和abstract修饰没有...原创 2018-07-05 20:50:56 · 8296 阅读 · 1 评论 -
Java static 静态变量、方法、块,(非)静态内部类
静态对象静态对象的数据是全局唯一的,一改全改。引用方便。直接用 类名. 静态方法名 或者 类名 . 静态变量名 就可以直接应用并可以直接修改其值,不需要 get 和 set 方法。保持数据的唯一性,修改他的任意一处地方,其他所使用到的地方都将随之改变。有效减少多余的浪费。static 和 final 用来修饰成员变量和成员方法,可简单理解为“全局常量”。对于变量一旦给值便不能被更该,对于方法表示不...转载 2018-07-05 09:27:34 · 466 阅读 · 0 评论 -
java中8种基本数据类型占的位数以及取值范围
java中有8种基本数据类型:byte、int、short、long、boolean、char、float、double对应的类为:Byte、Int、Short、Long、Boolean、Charecter、Float、Double其中:boolean是逻辑型,char是文本型,byte、short、int、long是整数型,float、double是浮点型byte:1字节 -128~127sho...原创 2018-05-19 15:01:19 · 2887 阅读 · 0 评论