JAVA的那些事儿
xyphf_和派孔明
全栈工程师,熟悉原生JavaScript、TypeScript、ES6、Webpack、VUE全家桶、JAVA SSM框架、Spring boot 、Spring cloud、MySql、Oracle、Linux等,可独立构建多页面、单页面应用项目。
展开
-
java:-source 1.7中不支持方法引用(请使用-source8或更高版本以启动方法引用)
1.首先审查IDEA的sdk,jdk也已经设置为了java1.8本地查询JDK也已经是1.8了原来MAVEN里面设置的JDK版本问题将setting.xml里面的JDK也设置成1.8就可以了java 编译器改成8...原创 2019-06-11 14:44:02 · 14810 阅读 · 3 评论 -
SpringMVC文件上传
SpringMVC文件上传Spring框架提供了一个CommonsMultipartResolver组件,相当于上传文件的解析器,它可以调用 commons-fileupload.jar工具包将请求中的上传文件流信息解析出来保存到服务器的某个目录下。步骤如下: 1 . 在spring配置CommonsMultipartResolver组件bean id="multipartRe原创 2018-01-07 18:13:56 · 264 阅读 · 0 评论 -
Java文件上传案例
1、编写upload.jsp,文件上传表单<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html原创 2018-01-01 18:56:34 · 1613 阅读 · 2 评论 -
JAVA图片验证码的创建与使用教程
前言:验证码常用于注册或登录等常见功能当中,这样做的目的是为了防止恶意登录或者恶意的批量注册等。验证码是必须传到服务端校验的。 DEMO1 创建一个图片写入文字并输出写一个ImageCodeServletpublic class ImageCodeServlet extends HttpServlet { public void service (HttpServletRequest req原创 2017-12-30 17:49:10 · 369 阅读 · 0 评论 -
GET和POST中文乱码的解决方法
如果表单中含有中文,采用GET或者POST提交请求时,getParameter()方法接收到的参数值乱码。1、乱码产生的原因 请求参数通过浏览器发送给Tomcat服务器,浏览器发送编码,但是tomcat默认采用ISO-8859-1编码进行处理,因此利用getParamenter()取出是乱码。2、POST提交时的解决方法 在Servlet中调用request.getParameter()方法,执原创 2017-12-01 07:25:22 · 1108 阅读 · 0 评论 -
DataOutputStream和ObjectOutputStream在用法上有什么区别?
DataOutputStream和ObjectOutputStream在用法上有什么区别?是不是DataOutputStream只能输出基本数据类型而ObjectOutputStream可以输出集合这样的引用类型?答:处理基本类型的时候没有什么很大的区别,区别是Object的可将一个实现了序列化的类实例写入输出流中,ObjectInput可以从输入流中将ObjectOutput输出的类实例读入到一个原创 2017-11-04 17:44:14 · 3396 阅读 · 0 评论 -
JAVA输出XML文件形式
先写一个实例类public class Emp { private Integer empNo; private String ename; private double sal; public Emp(){} public Emp(Integer empNo, String ename, double sal) { this.empNo原创 2017-11-13 23:50:00 · 4517 阅读 · 0 评论 -
JAVA如何使用Dom4j解析xml的DEMO案例
首先导入Dom4J的jar包(密码:kjv8)打印出xml文件中地产公司的id,名称和地址demo01.xml<?xml version="1.0" encoding="UTF-8"?><companys> <company id="1001"> <name>万科A</name> <address>广东深圳</address> </company>原创 2017-11-13 21:53:03 · 14020 阅读 · 1 评论 -
【算法】常用算法之快速排序算法
快速排序算法执行流程: 1.找到当前数列的中间元素,将它作为基准值,并且保存起来. 2.分别使用基准值左边和右边的元素和基准值进行比较。将比基准值小的元素放到基准值的左边,比基准值大的元素放到基准值的右边。 3.分别对基准值左边和右边的数列进行步骤1和2的操作。 4.直到所有的数据都处理完毕。 //快速排序算法DEMOpublic class QuickSortDemo { publ原创 2017-10-26 01:37:09 · 358 阅读 · 0 评论 -
【算法】常用的排序算法之冒泡排序
冒泡排序算法执行流程1.比较相邻位置的两个元素,如果第一个元素比第二个元素大,交换两个元素的位置。 2.从第一个元素到最后一个元素,重复执行步骤1。 3.将找出的最大值隔离,重复步骤1和步骤2。知道处理完所有元素的交换操作。外层循环的次数:当前排序数列的长度 - 1内层循环的次数: 当前数组的长度减去当前比较的轮数//冒泡排序算法DEMOpublic class TestBubbleDem原创 2017-10-26 00:33:08 · 365 阅读 · 0 评论 -
【算法】常用的查找算法之二分查找法
二分查找算法1.前提是当前查找的数列必须是有序的2.用查找的元素和查找数列中的中间元素进行比较,如果相等则表示成功。3.如果查找的元素小于中间元素,则去中间元素的左边进行查找。重复执行步骤2的操作。4.如果查找的元素大于中间元素,则去中间元素的右边进行查找。重复执行步骤2的操作。5.如果查找的元素与所有的中间元素都比较完毕后都没有找到相等的元素,则查找失败。//二分查找算法public原创 2017-10-25 23:40:12 · 611 阅读 · 0 评论 -
Java常见的设计原则
1、开闭原则 public class Student{ 属性 方法 } public class Student2 extends Student{ 新的属性 新的方法 } //反射 Class c = Class.forName(从配置文件中读取);概念:对扩展开发,对修改关闭。在程序的需求发生变化的时候,不能去修改源代码,而是去扩展新的功能模原创 2017-10-25 19:03:22 · 545 阅读 · 0 评论 -
final关键字、finally{}、finalize() 的区别
1、final关键字 final本意为”最终的,无法更改的”,可以修饰类、成员方法以及成员变量。 final修饰类不能被继承,final修饰方法不能被重写,final修饰成员变量必须指定初始值且不能被修改。在Java语言中很少单独使用static关键字和final关键字,通常使用public static final共同修饰成员变量来表达常量的概念,常量的命名规则是:所有字母都大写,不同单词之间原创 2017-10-16 21:23:58 · 626 阅读 · 0 评论 -
writeObject()和writeUnshared()的区别
writeUnshared()表示重新申请内存空间,让其地址发生改变原创 2017-11-10 21:16:10 · 1149 阅读 · 0 评论 -
[集合]Java的集合框架 Collection集合
Java语言中集合框架的顶层是: Collection集合 和 Map集合。其中Collection集合操作的元素基本单位是:单个元素。其中Map集合操作元素的基本单位是:单对元素。在实际开发中很少直接使用Collection集合,通常都是使用该集合的子集合:List集合、Queue集合以及Set集合。Collection中常用方法返回值类型方法名原创 2017-10-12 19:43:26 · 448 阅读 · 0 评论 -
数组和集合的区别
数组和集合的比较 (1)数组的特点 a.数组本质上就是一段连续的内存空间,用于记录多个类型相同的数据; b.数组一旦声明完毕,则内存空间固定不变; c.插入和删除操作不方便,可能会移动大量的元素导致效率太低; d.支持下标访问,可以实现随机访问; e.数组中的元素可以是基本数据类型,也可以使用引用数据类型;(2)集合的特点 a.内存空间可原创 2017-10-12 19:40:15 · 1903 阅读 · 0 评论 -
isNotBlank和isNotEmpty的区别
//返回布尔值 //isNotBlank: 既会判断不等于null 又会判断不等于"" //isNotEmpty: 只会判断不等于null //如下: if(!StringUtils.isNotBlank("name")){ }else{ }原创 2018-02-04 14:19:01 · 2963 阅读 · 0 评论 -
Java模拟银行转账(操作事务)
第一步:建立一张银行账户表 叫 BankAccount 并建立一个序列id number pk //用户idano varchar2(30) uk //用户卡号apassword varchar2(30) //用户密码aname varchar2(30) //用户名amoney ...原创 2018-02-28 01:45:23 · 13386 阅读 · 3 评论 -
Intellij IDEA 提示Cannot resolve symbol 'log' 的解决方法
导入别人的项目时,发现log飘红,提示Cannot resolve symbol‘log’,这是因为没有安装lombok插件的原因。以下是MAC下IDEA安装lombok插件的步骤。搜索并安装lombok插件安装后重启即可...原创 2019-06-04 10:29:54 · 29016 阅读 · 6 评论 -
Java8的Stream API使用
案例一:import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Stream;import org.junit.Test;/** * @author xyphf * @date 2018年8月23日 * * 一、Stream 的三个...原创 2018-11-12 00:19:10 · 159 阅读 · 0 评论 -
Java集合常用方法介绍
目录1.1 集合的使用场景1.4 Collection中的常用方法2.2 List集合常用的方法3.2 Queue接口常用的方法4.4 Set接口常用的方法5.2 Map接口常用的方法 当需要在程序中记录单个数据时,则声明变量记录即可; 当需要在程序中记录多个类型相同的数据时,则声明数组记录即可; 当需要在程序中记录多个类型不同的数据时,则构造对象记录即...原创 2018-11-13 00:14:00 · 9138 阅读 · 3 评论 -
JAVA集合中泛型的原理本质简介
Java集合中的泛型机制集合中之所以可以存放不同类型的数据是因为全部当作Object类型处理的,当从集合中取出元素并希望表达该数据最原始的类型时就需要进行强制类型转换,强制类型转换不仅使得代码更加繁琐而且可能导致类型转换异常的发生.为了避免上述问题的发生,从jdk1.5开始提供泛型机制,也就是在集合名称的右边使用<数据类型>的方式明确规定该集合中可以存放的元素类型,若存放其他类...原创 2018-09-18 22:16:09 · 2731 阅读 · 1 评论 -
利用MyBatis-Generator工具根据现有数据库生成实体类和Mapper接口
第一步:在pom.xml中导入mybatis-generator工具包<dependencies> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifact...原创 2018-09-16 12:15:17 · 567 阅读 · 0 评论 -
使用Kaptcha实现JAVA验证码
第一步导入jar包,放入pom.xml文件<dependencies> <!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha --> <dependency> <groupId>com.github.penggle</group...原创 2018-09-05 23:25:59 · 415 阅读 · 0 评论 -
MySQL引擎InnoDB和MYISAM的主要区别
MYSQL数据库的引擎主要分为InnoDB和MYISAM,其中MYISAM支持表级锁,比如说你这张表有N行记录,要更改其中的一行记录,比如说更改第二行数据的信息,这时候对应MYISAM来说它是锁完整张表的,也就是说你另外一个线程要要更新这行记录,它是没办法更新的,必须等待第一个线程完成之后释放好锁,才能执行更新这行数据,这个是MYISAM的弱点,不过MYISAM读的性能是非常高的,它是基于全表...原创 2018-08-24 18:58:30 · 294 阅读 · 0 评论 -
生成项目目录树
tree /f > list.txt原创 2018-08-13 15:04:30 · 1857 阅读 · 0 评论 -
MD5加盐值加密工具类
util/MD5Util.javapackage com.mmall.util;import java.security.MessageDigest;/** * Created by name */public class MD5Util { private static String byteArrayToHexString(byte b[]) { S...原创 2018-08-02 22:42:12 · 2085 阅读 · 0 评论 -
本地缓存 GUAUA
package com.mmall.common;import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;import com.google.common.cache.LoadingCache;import org.slf4j.Logger;import org.sl...原创 2018-08-02 22:03:08 · 519 阅读 · 0 评论 -
Java学习成长路径
JavaSE部分 1 JavaSE体系介绍 JDK安装与环境配置 2 变量 注释,Java数据类型,进位制转换,运算符 3 运算符 分支结构 4 分支结构循环结构 5 循环结构 一维数组 6 二维数组 面向对象编程的概念 类的定义 对象的创建 引用的使用 成员方法 7 构造方法与方法重载 this关键字 8 封装 st...原创 2018-07-31 13:23:28 · 808 阅读 · 0 评论 -
Java日期时间相关的类
Date类 (1)基本概念 java.util.Date类用于描述特定的瞬间,可以精确到毫秒,通常描述年月日时分秒信息。(2)常用的方法 Date() - 无参方式构造对象,默认使用当前系统时间来初始化该对象。 Date(long date) - 根据参数指定的毫秒数来构造对象。 - 参数为距离1970年1月1日0时0分0秒的毫秒数,1秒=1000毫秒 1毫秒原创 2017-10-11 23:12:03 · 1665 阅读 · 0 评论 -
String类的常用方法
import java.util.Scanner;public class TestStringAll { public static void main(String[] args) { //使用Integer类中的构造方法来构造对象,该类没有无参的构造方法 // int 转为 Integer Integer it1 = new Integer(原创 2017-10-11 21:18:59 · 430 阅读 · 0 评论 -
JAVA实现数字反转
import java.util.Scanner;public class Reverse{ //输入一个整数然后反转 public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数"); int n原创 2017-09-12 07:53:21 · 3560 阅读 · 0 评论 -
JAVA不使用第三个变量,交换两个变量的值
我们先看看使用第三个变量的方法。public class Swap{ public static void main(String[] args){ int a = 3; int b = 5; int c = a; //把a的值先存到c a = b; //把b存给a b = c; //把存在c的值倒赋给b原创 2017-09-12 00:03:30 · 7624 阅读 · 4 评论 -
equals()方法的应用,判断引用类型是否相等
Java的基本类型和引用类型中我们知道String是引用类型。引用类型是否相等 用equals()方法 例:我们模拟一个聊天长期,如果输入了byebye则退出。import java.util.Scanner;public class Chat{ public static void main(String[] args){ Scanner sc = new Scanne原创 2017-09-11 22:57:43 · 878 阅读 · 0 评论 -
Java的基本类型和引用类型
变量的类型就是Java数据类型,包括: 基本类型和引用类型。基本类型就8种: boolean – 布尔,就是真 true 或假 false byte short int long – 整型,默认的整型 int float double – 浮点,就是小数 char – 字符,就是一个字符,用”括起来。引用类型分为5大类: 类、接口、数组、原创 2017-09-11 21:46:00 · 714 阅读 · 0 评论 -
JAVA获取100以内所有的奇数
在此之前我们先了解一下奇数的定义: 1、奇数只不能被2整除的数,称为奇数。 2、奇数和偶数是相对的,奇数加2还是奇数。 3、所有的奇数成等差数列。由此可得以下方法:方法一:public class For{ public static void main(String[] args){ for( int i=1 ; i<101 ; i++ ){原创 2017-09-11 22:47:35 · 11293 阅读 · 0 评论 -
JAVA获取随机数的三种方式
方法一: 用系统时间对某个值取余数,比如对100取余,可以得到0-99的随机数。方法二: Math类中的random()方法,可以获得 [0,1) 的随机小数。 方法三: 使用 java.util.Random 类 。通常推荐使用方法三:如,import java.util.Random; // 第一步// 在主方法中写以下代码:Random ran = new Random(); //第二原创 2017-09-11 22:38:44 · 843 阅读 · 0 评论 -
常见的流程控制语句
程序有三种常见的结构:顺序结构 – 代码从上到下,顺序执行。代码默认就是顺序结构。 选择结构 – 代码按照条件选择一个分支执行,条件的结果决定了执行哪段代码。 循环结构 – 代码按照条件反复多次执行,直到条件不满足为止。Java提供了5种流程控制语句实现选择结构和循环结构: if/else switch/case 选择/分支结构 for while do/whi原创 2017-09-11 22:13:41 · 2369 阅读 · 0 评论 -
运算符
常见的运算符有: 1 算数运算符 + - * / %(模,取余) 2 逻辑运算符 与 或 非 3 赋值运算符 = 4 比较运算符 > >= < <= ==(判断是否相等) != 5 自增自减运算符 ++ 和 –算数运算符 整数相除,只取整数部分,没有小数部分。 5/2 = 2 9/10 = 0 0不能做除原创 2017-09-11 22:03:18 · 232 阅读 · 0 评论 -
Java编程规范
JAVA程序员在写代码时,要按照一定的准则编程。 这个准则不是语法,不是强制的。叫编程规范。Java编程的通用规范: 1 所有的包名全小写,不同单词用. 隔开。 user.name 2 所有的类名首字母大写,其它单词首字母大写。 UserName 3 方法名/变量名首字母小写,其它单词首字母大写。 userName 4 行间要有缩进,缩进为2个或者4个空格。类中原创 2017-09-11 21:55:30 · 280 阅读 · 0 评论