JavaEE
刘鹏博.
赢在别人休息时
展开
-
@SuppressWarnings注解什么意思
简介:java.lang.SuppressWarnings是J2SE 5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。使用: @SuppressWarnings(“”) @SuppressWarnings({}) @SuppressWarnings(转载 2017-11-08 13:52:34 · 4468 阅读 · 0 评论 -
SSM框架搭建与实战案例
SSM(Spring,Spring MVC,Mybatis),下面我们就动手跟着步骤搭建一个 SSM 框架整合的项目工程,并写出一个基于 SSM 框架的商品管理系统。 开发环境:SSM,MyEclipse,JDK 1.7,Tomcat 7.0,Oracle数据库。一、创建Java Web项目 导入 jar 包,当然也可以使用 Maven ,这里以手动导 jar 包为例。 ...原创 2018-05-28 12:19:51 · 3115 阅读 · 1 评论 -
Servlet生命周期及相关问题
1、说一说Servlet生命周期Servlet生命周期包括三部分:初始化:Web容器加载servlet,调用init()方法处理请求:当请求到达时,运行其service()方法。service()自动派遣运行与请求相对应的doXXX(doGet或者doPost)方法。销毁:服务结束,web容器会调用servlet的distroy()方法销毁servlet。2、get提交和post提交有何区别(1)...转载 2018-06-10 16:50:01 · 3056 阅读 · 0 评论 -
MyBatis的生命周期
在web应用中如果不了解mybatis组件的生命周期可能带来很严重的并发问题,下面总结下SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession和Mapper的生命周期。MyBatis核心组件:SqlSessionFactoryBuilderSqlSessionFactorySqlSessionMapper 一:SqlSession...转载 2018-06-25 15:12:24 · 1821 阅读 · 0 评论 -
什么是多线程和高并发
“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程 多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。 高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致...转载 2018-06-30 17:48:35 · 1938 阅读 · 0 评论 -
Java中统计字符出现的次数
我们面试通常会遇到,有一个字符串,如何统计出每个字符出现的次数,这样的题目。下面利用map集合存储进行统计每个字符出现的频次。代码如下: public static void main(String[] args) { // 定义字符串 String string = "fdafasfsfasf"; // 定义map容器 Map<Character, Integ...原创 2018-07-03 17:39:43 · 13771 阅读 · 6 评论 -
Map集合的遍历
Map集合是以键值对(key-value)进行存储数据的,不能直接遍历,可以通过 set 集合进行遍历,map 集合提供了两种遍历的方式。一种方法是:keySet(); 一种方法是:entrySet();这两种方法分别可以使用增强 for 循环、迭代器进行遍历数据。代码如下:import java.util.HashMap;import java.util.Iterator;impor...原创 2018-07-04 17:54:26 · 323 阅读 · 0 评论 -
Java单例模式中的饱汉式和饥汉式
Java中单例模式是笔试的常见题目,包括饱汉式和饥汉式,具体代码实现如下:饱汉式:public class SingleTon { private SingleTon(){} private final static SingleTon instance = new SingleTon(); public static SingleTon getInstance () {...原创 2018-07-05 15:06:42 · 1658 阅读 · 0 评论 -
Eclipse中安装lombok插件
1.下载lombok.jar包 https://projectlombok.org/download.html2.运行Lombok.jar: java -jar D:\software\lombok.jar D:\software\lombok.jar这是windows下lombok.jar所在的位置 数秒后将弹出一框,以确认eclipse的安装路径</code>3.确...转载 2018-07-18 09:21:19 · 433 阅读 · 0 评论 -
Java判断时间是否在当天24h范围内
写项目的时候,遇到一个需求,需要判断查询出来的数据更新时间是否为当天24h之内的数据,当然可以使用SQL语句 between 更新时间范围来查询;但是,有些特殊情况需要通过id先把所有满足id条件的数据查询出来,然后通过Java业务逻辑来处理满足当天时间范围内的数据给分页处理,这样就涉及到了一个判断是否为当天时间的工具类。 工具代码:package com.sjbb...原创 2018-08-01 13:20:32 · 16088 阅读 · 0 评论 -
Java对数组排序——冒泡排序
排序问题,在很多地方会使用到,下面主要是对数组中的元素进行冒泡排序,从小到大。冒泡排序概念及算法原理,点击链接了解:https://baike.so.com/doc/2392104-2529369.html 冒泡排序代码:package com.shsj.test;/** * @Description 冒泡排序 * @author 刘鹏博 * @version...原创 2018-08-02 23:28:25 · 3379 阅读 · 0 评论 -
Java重写compare方法对对象进行排序
项目中遇到一个今日贡献和累计贡献,进行分页并根据贡献值进行从大到小的顺序展示。这里面使用到了对实体中的属性进行排序。下面以一个学生实体类来模拟实现根据学生的年龄,从大到小的顺序排序(倒序)。实现代码:1、创建Student实体类package com.shsj.sort;public class Student { private String name; //...原创 2018-08-03 00:11:52 · 34678 阅读 · 0 评论 -
Java中List集合过滤出符合条件的List元素集合
在项目开发的过程中,我们经常会对List集合进行按条件的过滤,筛选出我们想要的结果或者是符合项目需求的数据。比如:我们有一批学生对象,每个学生都有自己的年龄属性,但是我们想要筛选出这一批学生中年龄为21和22的所有学生,我们就需要对这一批学生集合中的数据进行按条件的筛选,得到我们想要的结果。创建学生实体类:package com.shsj.entity;public clas...原创 2018-08-23 10:34:17 · 100089 阅读 · 1 评论 -
SVN客户端设置过滤上传文件和文件夹
安装客户端SVN,桌面或文件夹中:右击 ---> TortoiseSVN ---> Settings 打开,如下如所示,把要过滤的文件和文件夹写入到 "Global ignore pattern" 中,以空格隔开。...原创 2018-11-13 16:33:10 · 2963 阅读 · 0 评论 -
Windows中Redis的安装与使用
版本:Redis-x64-3.2.100 Windows x64一、下载地址:https://github.com/MSOpenTech/redis/releases二、解压,文件目录简单介绍文件名 简述 redis-benchmark.exe 基准测试 redis-check-aof.exe aof redischeck-dump.exe du...原创 2018-11-16 14:19:39 · 354 阅读 · 0 评论 -
IDEA中安装lombok插件
一、File ---> settings...二、Plugins ---> Browse repositories...三、搜索 lombok ,点击 Lombok Plugin , Install ,稍等片刻四、Restart原创 2018-11-17 16:02:40 · 303 阅读 · 0 评论 -
Java中的JSP页面日期时间格式转换
写项目时,用户订单时间需要格式化为 xxxx-xx-xx xx:xx:xx 格式显示,而不是默认的时间格式,如:Sat May 19 22:50:18 CST 2018,找了一种最简单的方法,直接使用 fmt 标签即可转化为自定义的时间格式,使用方法如下:1、在本 JSP 页面头部加上 fmt 标签<%@ taglib uri="http://java.sun.com/jsp/...原创 2018-05-20 00:03:07 · 14743 阅读 · 3 评论 -
MyEclipse中如何设置类注释和方法注释格式
类注释格式:步骤一:Window --> Preferences --> Java --> Code Style --> Code Templates --> Comments --> Types步骤二:双击 Types进行编辑我的格式为:/** * @Description ${todo} * @author 刘鹏博 * @version v1.0 *...原创 2018-04-18 15:19:29 · 6621 阅读 · 0 评论 -
Java中的properties配置文件
Java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容格式是"键=值"格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。... ...原创 2017-11-22 11:09:02 · 266 阅读 · 0 评论 -
Struts2中 action VS Action类
Struts2中 action 与 Action类的区别: action:代表一个 Struts2 的请求。 Action类:能够处理 Struts2 请求的类。 【注】Action类: 1、属性的名字必修遵守与 JavaBean 属性名相同的命名规范。 2、属性的类型可以是任意类型,从字符串到非字符串(原创 2017-12-05 17:40:27 · 462 阅读 · 0 评论 -
Java面试题全集(下)
这部分主要是开源Java EE框架方面的内容,包括hibernate、MyBatis、spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。转载 2017-11-27 17:50:48 · 321 阅读 · 0 评论 -
Java面试题全集(中)
这部分主要是与Java Web和Web Service相关的面试题。96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。补充:Sun Mi转载 2017-11-27 17:48:23 · 289 阅读 · 0 评论 -
Java面试题全集(上)
1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的转载 2017-11-27 17:46:15 · 407 阅读 · 0 评论 -
深入理解Java中抽象类和接口的区别
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别一.抽象类 在了解抽象类...转载 2018-02-24 23:33:28 · 360 阅读 · 1 评论 -
Java死锁的解释
在计算机系统中有很多一次只能由一个进程使用的资源,如打印机,磁带机,一个文件的I节点等。在多道程序设计环境中,若干进程往往要共享这类资源,而且一个进程所需要的资源不止一个。这样,就会出现若干进程竞争有限资源,又推进顺序不当,从而构成无限期循环等待的局面。这种状态就是死锁。系统发生死锁现象不仅浪费大量的系统资源,甚至导致整个系统崩溃,带来灾难性后果。所以,对于死锁问题在理论上和技术上都必须给予高度...转载 2018-02-26 18:31:11 · 361 阅读 · 0 评论 -
Java构造方法
1、和实例方法一样,构造器可以有任何访问的修饰符,public、private、protected或者没有修饰符 ,都可以对构造方法进行修饰。不同于实例方法的是构造方法不能有任何非访问性质的修饰符修饰,例如static、final、synchronized、abstract等都不能修饰构造方法。解释:构造方法用于初始化一个实例对象,所以static修饰是没有任何意义的;多个线程不会同时创建内存...转载 2018-02-26 21:10:22 · 394 阅读 · 0 评论 -
Java中十进制转换为二、八、十六进制
Java 中 Integer 类为我们提供了二进制、八进制、十进制的转换方法,分别封装起来调用方法即可完成十进制数的任意转换。代码如下:package com.aaa.Test;/** * @Description 十进制数分别转换为二、八、十六进制 * @author 刘** * @version v1.0 * @date 2018-3-6 **/public c...原创 2018-03-06 22:19:01 · 2778 阅读 · 0 评论 -
Java中的序列化
一、什么是序列化: 序列化理解成“打碎”是可以的,不过在书本上的名词就是将对象转换成二进制。 二、在java中如何实现序列化: 首先我们要把准备要序列化类,实现 Serializabel接口 例如:我们要Person类里的name和age都序列化1234567891011121314import java.io.Serializable; public class Person implem...转载 2018-02-27 18:01:29 · 196 阅读 · 0 评论 -
Java中的匿名对象
匿名对象要注意的事项: 1. 我们一般不会给匿名对象赋予属性值,因为永远无法获取到。 2. 两个匿名对象永远都不可能是同一个对象。匿名对象好处:简化书写。匿名对象的应用场景: 1. 如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这时候可以使用匿名对象。 2. 可以作为实参调用一个函数。 [java] view plain copyclass Stu { ...转载 2018-02-27 22:52:59 · 329 阅读 · 0 评论 -
Java内部类
说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法...转载 2018-03-01 21:18:22 · 220 阅读 · 0 评论 -
Java多态
什么是多态?简而言之就是相同的行为,不同的实现。 而多态也分为静态多态(重载)、动态多态(重写)和动态绑定。 静态动态,实际就是指的重载的概念,是系统在编译时,就能知晓该具体调用哪个方法。动态多态指在运行中才能动态的确定方法所指对象,动态多态的实现方式是重写父类中同名成员方法,其调用规则是依据对象在实例化时而非定义时的类型,相应的调用对应类中的同名成员方法,它需要通过动态绑定和重写机制来实现。 ...转载 2018-02-24 23:24:48 · 303 阅读 · 1 评论 -
Java继承
Java继承是使用已存在的类的定义作为基础建立新子类的意思,新子类的定义可以增加新的数据(成员变量)或新的功能(方法)。其中新的子类可以使用在父类中定义好的成员变量,(也就是说能够不用定义直接使用父类中定义过得成员变量,因为已经继承了)同时JAVA不支持多重继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,同时一个类可以实现多个接口,从而克服单继承的缺点。 此外,继承还...转载 2018-02-24 23:19:41 · 150 阅读 · 0 评论 -
Java封装
继承、封装、多态、抽象是面向对象编程的四大基本概念,其中封装尤为重要,因为从我们学习JAVA开始,就基本上接触了封装,因为JAVA中的所有程序都是写在类中的,类也能当做一种封装。 在面向对象中封装是指隐藏对象的属性和实现的细节,仅对外提供公共访问方式。在类定义中用private关键字来实现封装。封装有什么好处? 一是用private把类的细节与外界隔离起来,从而实现数据项和方法的隐藏,而要访问...转载 2018-02-24 23:17:50 · 151 阅读 · 0 评论 -
自定义集合HashCode和equals方法重写
HashSet 存储的数据是无序,不重复的,原因是因为每个字符有其对应的 hashCode 值。然而,我们在 HashSet 集合中存储自定义对象时,每 new 出来一个对象在我们的 Java 内存中是不同的,但是 HashSet 集合存储的是不重复的,为了解决这个矛盾,我们需要重写 hashCode 和 equals 方法进行判断是否存在相同的数据存在。自定义 Person 类:...原创 2018-03-12 09:32:19 · 505 阅读 · 0 评论