Java-基础
Java-基础
Sunny3096
社会闲散人员
展开
-
【Java----MD】.md文件的编写语法
一、标题标题其实和HTML中的h系列很像,想要设置为标题的文字前面加#来表示一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。注:标准语法一般在#后跟个空格再写文字,示例:# 这是一级标题## 这是二级标题### 这是三级标题#### 这是四级标题##### 这是五级标题###### 这是六级标题效果如下:这是一级标题这是二级标题这是三级标题这是四级标题这是五级标题这是六级标题二、字体 加粗 要加粗的文字左右分别用两个*号原创 2020-05-09 17:24:37 · 3437 阅读 · 0 评论 -
【Java----工具类】Hutool
官网https://hutool.cn/docs/#/简介Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当...原创 2020-05-06 17:35:03 · 415 阅读 · 0 评论 -
【Java----工具类】MapStruct,VO、DTO、Entity之间的转换工具
官网:https://github.com/mapstruct/mapstruct-examples介绍在工作中,我们经常要进行各种对象之间的转换。PO:persistent object 持久对象,对应数据库中的一条记录 VO:view object 表现层对象,最终返回给前端的对象 DTO:data transfer object数据传输对象,如dubbo服务之间...原创 2020-05-06 17:19:32 · 4020 阅读 · 0 评论 -
【Java----JDK8】特性
毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本。这个版本包含语言、编译器、库、工具和JVM等方面的十多个新特性。在本文中我们将学习这些新特性,并用实际的例子说明在什么场景下适合使用。这个教程包含Java开发者经常面对的几类问题:语言 编译器 库 工具 运行时(JVM)二、Java语言的新特性Java 8是Java的一个重大版本,有人认为,...原创 2019-05-06 09:18:07 · 265 阅读 · 0 评论 -
【Java----JDK9】特性
一、目录结构JDK9具体目录结构如下所示:bin: 该目录包含所有的命令。 conf: 包含用户可以编辑的配置文件,例如以前位于jre\lib 目录中的.properties 和 .policy 文件。 include: 包含一些编译本地代码时使用的C/C++头文件。 jmods: 包含JMOD 格式的平台模块,创建自定义运行映射时需要它。 legal: 包含法律声明。 lib:...原创 2019-05-06 09:29:05 · 222 阅读 · 0 评论 -
【Java----JDK10】特性
一、局部变量类型推断很多人抱怨Java是一种强类型,需要引入大量的样板代码。甚至在这些情况下,给定好变量名,通常很清楚发生了什么,明显类型声明往往被认为是不必要的。许多流行的编程语言都已经支持某种形式的局部变量类型推断:如C++ (auto), C# (var), Scala (var/val), Go (declaration with :=)等。JDK10 可以使用var作为局部变量类...原创 2019-05-06 09:30:37 · 237 阅读 · 0 评论 -
【Java----JDK11】特性
随着JDK11正式发布,带来了许多新的特性。本文主要介绍JDK11的部分新特性和新的API。一、Local Var在Lambda表达式中,可以使用var关键字来标识变量,变量类型由编译器自行推断。例如:// LocalVar.javapackage com.itranswarp.jdk11;import java.util.Arrays;public class Loc...原创 2019-05-06 09:33:27 · 329 阅读 · 0 评论 -
【Java----JDK8】lambda表达式
一、处理匿名内部类1、Runnable接口new Thread(new Runnable() { public void run() { System.out.println("hello world!!!"); }}).start(); // lambdanew Thread(()->System.out.println("hello lambda!!!...原创 2019-05-06 11:50:27 · 182 阅读 · 0 评论 -
【Java----JDK8】tream API
引例:List<String> strList = Arrays.asList("zhaojigang","nana","tianya","nana");Stream<String> streamList = strList.stream();//集合转为streamstrList = streamList.distinct().filter(str->!s...原创 2019-05-06 11:58:01 · 691 阅读 · 0 评论 -
【Java----工具类】判断字符串是否乱码
import java.util.regex.Matcher; import java.util.regex.Pattern; public class ChineseUtill { private static boolean isChinese(char c) { Character.UnicodeBlock ub = Character....原创 2019-05-06 12:00:02 · 307 阅读 · 0 评论 -
【Java----工具类】创建多级文件夹
File类中的mkdir()和mkdirs():mkdir():只能创建一层目录.mkdirs():可以创建多层目录代码:path可以是带文件名称的全路径//路径String path = "/usr/sunny/images/product/img/";File file = new File(path);//如果路径不存在,新建if(!file.exists()...原创 2019-05-27 09:48:54 · 558 阅读 · 0 评论 -
【Java----工具类】正则关键字转义
正则需要转义字符:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'问题现象:替换URL格式的字符串时无法替换成功String temp = "<img src=\"http://www.ddddd.cn/api/tup.php?w=709f6d3d82be6a351eb1d9655...原创 2019-05-27 09:50:03 · 1066 阅读 · 0 评论 -
【Java----工具类】字符串转义与反转义
apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils,这个工具类是在2.3版本以上加上的去的,利用它能很方便的进行html,xml,Java等的转义与反转义,而且还能对关键字符串进行处理预防SQL注入,不过好像common-lang3.0以后我看着好像没这个处理SQL语句的方法了,想用的话前提时引入对应的jar包,以下为它的部分...原创 2019-05-27 09:51:52 · 12162 阅读 · 0 评论 -
【Java----工具类】统计字符串匹配个数
org.apache.commons.lang3.StringUtils包带的工具类StringUtils.countMatches(context, keyword);原创 2019-05-27 09:52:57 · 2241 阅读 · 0 评论 -
【Java----工具类】判断字符串是否为有效的日期格式
public static boolean isValidDate(String str) { boolean convertSuccess=true; // 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写; SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd...原创 2019-05-27 09:53:42 · 2711 阅读 · 0 评论 -
【Java----JDK7】特性
一、switch中可以使用字串String s = "test";switch (s) {case "test" : System.out.println("test");case "test1" : System.out.println("test1");break ;default : System.out.println("break");break ;...原创 2019-05-06 08:59:40 · 254 阅读 · 0 评论 -
【Java----JDK6】特性
一、Desktop类和SystemTray类在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray。前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序.二、使用JAXB2来实现对象...原创 2019-05-06 08:55:09 · 413 阅读 · 0 评论 -
【Java----堆栈】Java堆和栈的区别
1、概述在Java中,内存分为两种,一种是栈内存,另一种就是堆内存。2、堆内存 1.什么是堆内存? 堆内存是是Java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放。 2.堆内存的特点是什么? 第一点:堆其实可以类似的看做是管道,或者说是平时去排队买票的的情况差不多,所以堆内存...原创 2019-04-26 14:27:13 · 156 阅读 · 0 评论 -
【Java----工具类】【文件下载】Java下载文件的几种方式
1.以流的方式下载.public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(path); // 取得文件名...原创 2019-04-26 14:29:24 · 778 阅读 · 0 评论 -
【Java----工具类】【PDF】Java操作PDF之iText超入门
Text是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。http://itextpdf.com/版本:itextpdf-5.2.1.jar1、生成一个PDF//Step 1—Create a Document. Document document = new Documen...原创 2019-04-26 14:38:36 · 2659 阅读 · 2 评论 -
【Java----正则】input输入框只能输入大于等于0的正数
大于等于0的正数,允许小数<input type="number" step="1" min="0" onkeyup="this.value= this.value.match(/\d+(\.\d{0,2})?/) ? this.value.match(/\d+(\.\d{0,2})?/)[0] : ''">大于0的正整数<input type="text" ...原创 2019-04-28 16:35:17 · 4629 阅读 · 0 评论 -
【Java----正则】正则表达式详细教程
本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。一旦入门后,你可以从网上找到更多更详细的资料来继续学习。别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并不像你想像中的那么困难。当然,如果你看完了这篇教程之后发现自己明白了 很多,却又几乎什么都记不得,那也是很正常的--其实我认为没接触过正则表达式的人在看完这...原创 2019-04-28 16:36:17 · 513 阅读 · 0 评论 -
【Java----Session】Session过期、失效时间
1.session其实就是一个Map,key=value,通过session.getAttribute("name");获得session中设置的参数 2.session的过期时间是从什么时候开始计算的?是从一登录就开始计算还是说从停止活动开始计算? 从session不活动的时候开始计算,如果session一直活动,session就总不会过期。从该Session未被访问,开始计时; 一...原创 2019-04-28 16:37:39 · 1692 阅读 · 0 评论 -
【Java----运行原理】第一章 Java代码执行流程
1、Java代码执行流程第一步:*.java-->*.class(编译期) 第二步:从*.class文件将其中的内容加载到内存(类加载)(运行期) 第三步:执行代码(运行期)说明:整个白框部分表示JVM管理的内存 包含栈帧的地方称作JVM方法栈,一个栈帧就是一个方法 在Hotspot JVM中,JVM方法栈和本地方法栈是同一个 java方法是通过出栈操作来执行的(在...原创 2019-04-28 16:39:13 · 174 阅读 · 0 评论 -
【Java----运行原理】第二章 Javac编译原理
注:本文主要记录自《深入分析java web技术内幕》"第四章 javac编译原理"1、javac作用将*.java源代码文件转化为*.class文件2、编译流程流程:词法分析器:将源码转换为Token流 将源代码划分成一个个Token(Token包含的元素类型看3.2) 语法分析器:将Token流转化为语法树 将上述的一个个Token组成一句句话(或者说成一...原创 2019-04-28 16:40:54 · 159 阅读 · 0 评论 -
【Java----运行原理】第三章 类文件结构与javap的使用
注:本文主要参考自《深入理解java虚拟机(第二版)》1、javap的使用与类文件结构使用过程:java源代码:package compile;/** * class字节码 */public class TestClass { private int m; public int inc() { return m + 1; ...原创 2019-04-28 16:43:22 · 123 阅读 · 0 评论 -
【Java----运行原理】第四章 类加载机制
注:本文主要参考自《深入理解java虚拟机(第二版)》在查看本文前,先要了解JVM内存结构,见第一章 JVM内存结构1、类加载流程把描述类的数据从xxx.class文件加载到JVM内存 对这些数据进行校验、准备、解析(这三个过程总称为"链接") 对这些数据进行初始化,最终形成可被JVM直接使用的Class对象注意:类加载过程是在运行期完成的2、加载作用:把描述类...原创 2019-04-28 16:44:01 · 169 阅读 · 0 评论 -
【Java----运行原理】第五章 类加载器ClassLoader源码解析
1、ClassLoader作用类加载流程的"加载"阶段是由类加载器完成的。2、类加载器结构结构:BootstrapClassLoader(祖父)-->ExtClassLoader(爷爷)-->AppClassLoader(也称为SystemClassLoader)(爸爸)-->自定义类加载器(儿子)关系:看括号中的排位;彼此相邻的两个为父子关系,前为父,后为子...原创 2019-04-28 16:45:37 · 148 阅读 · 0 评论 -
【Java----运行原理】第六章 字节码执行方式--解释执行和JIT
注:主要参考自《分布式java应用:基础与实践》《深入理解Java虚拟机(第二版)》1、两种执行方式:解释执行(运行期解释字节码并执行) 强制使用该模式:-Xint 编译为机器码执行(将字节码编译为机器码并执行,这个编译过程发生在运行期,称为JIT编译) 强制使用该模式:-Xcomp,下面是两种编译模式 client(即C1):只做少量性能开销比高的优化,占用内存少,适...原创 2019-04-28 16:49:28 · 572 阅读 · 0 评论 -
【Java----工具类】List去重
List<String> list = new ArrayList<String>();list.add("2");list.add("3");list.add("2");list.add("4");list.add("2");list.add("2"); List<String> result = new ArrayList&l...原创 2019-04-28 16:51:04 · 1962 阅读 · 0 评论 -
【Java----JDK5】特性
一、自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。自动拆箱,只需将该对象值赋给一个基本类型即可。java——类...原创 2019-05-06 08:54:26 · 168 阅读 · 0 评论 -
【问题解决】java.lang.UnsupportedClassVersionError
程序部署到多个服务器的时候其中报出错误:nohup: ignoring input and appending output to `nohup.out'查看nohup.out日志Exception in thread "main" java.lang.UnsupportedClassVersionError: com/yq/Application : Unsupported maj...原创 2019-04-26 14:25:15 · 1338 阅读 · 0 评论