- 博客(39)
- 问答 (1)
- 收藏
- 关注
原创 Lambda表达式运行原理
目录一、创建测试样例二、利用Java命令编译分析三、文末JDK8引入了Lambda表达式以后,对我们写代码提供了很大的便利,那么Lambda表达式是如何运用简单表示来达到运行效果的呢?今天,我们通过一个例子来学习下Lambda表达式的底层运行原理!一、创建测试样例首先:我们创建一个测试类App.java,在它内部新建一个函数式接口Lam.java,只有一个抽象方法print(),作用是将传入的消息加工后再输出。然后:我们在测试类App.java中进行lambda表达式的创建测试。代码如下:pub
2020-07-27 13:14:52
557
原创 函数式接口
函数式接口特点:重点接口包路径:java.util.funciont特点:具有唯一的抽象方法,有且仅有一个 (即所有的函数式接口,有且只能有一个抽象方法)加上标注 @FunctionalInterface,则会触发 JavaCompiler的检查。对于符合函数接口的接口,加不加都无关紧要,但是加上则会提供一层编译检查的保障。如果不符合,则会报错。继承后的抽象方法则不算抽象方法。例如接口实现了Object中的方法,toString()等方法。可用于lambda类型的使用方式重点接口P
2020-07-27 09:53:38
225
原创 简单计算引擎分享
简单计算引擎一、背景二、限定场景三、代码实现1.实体类2.计算类3.工具类4.解析类5.测试四、总结一、背景最近,工作中经常遇到公式计算的情况,虽然都是加减乘除的简单运算,但使用比较频繁,于是,自己就乘着业余时间手写了一个仅支持加减乘除法的计算引擎,分享出来,供大家一起学习!首先,一遇到简单计算,可能很多人都会想到Java通过JavaScript引擎调用Javascript数学函数实现计算,创建实例如下:ScriptEngine engine = new ScriptEngineManager()
2020-07-24 23:36:02
427
原创 通过实例深入理解监听器
通过实例深入理解监听器一、什么是监听器二、监听器要素三、实现步骤四、实例1.场景描述2.代码实现1)定义监听器接口2)监听者、被监听者3)创建事件对象4)实现监听器接口,分别创建监听者、被监听者的监听实例5)在监听者内部创建触发行为6.)在被监听者内部创建响应行为7)创建测试用例3.功能扩展1)定义监听器接口2)监听者、被监听者3)创建事件对象4)实现监听器接口,创建监听实例5)在监听者内部创建触发行为6.)在被监听者内部创建响应行为7)创建测试用例五、文末之前写过一个简单监听器的实例文章,想要了解的,可
2020-07-23 21:24:24
768
原创 学习使用CompletableFuture
CompletableFuture一.前言1.JDK5的异步处理方式2.JDK8的异步处理方式二、学习CompletableFuture1.结果获取方式2.创建CompletableFuture对象3.CompletableFuture 的异步回调功能:thenApply4.运行完成时的代码,即对结果进行消耗:thenAccept5.上一步结果与下一步操作无关系:thenRun6.对2个cf的结果进行组合:thenCompose7.结合2个cf的结果:thenCombine8.消耗两个cf的结果,不返回结果
2020-07-23 15:53:42
276
翻译 单点登录(SSO)
单点登陆介绍一、简介二、技术特点1.普通登录认证机制2.同域下的单点登录3.不同域下的单点登录4.问题三、总结一、简介单点登录英文全称Single Sign On,简称就是SSO。意思就是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。如图所示,图中有4个系统,分别是Application1、Application2、Application3、和SSO。Application1、Application2、Application3没有登录模块,而SSO只有登录模块,没有其他的业
2020-07-15 17:45:17
159
原创 MIME-TYPE 列表
Suffixes applicableMedia type and subtype(s).3dmx-world/x-3dmf.3dmfx-world/x-3dmf.aapplication/octet-stream.aabapplication/x-authorware-bin.aamapplication/x-authorware-map.aasapplication/x-authorware-seg.abctext/vnd.abc...
2020-06-10 21:10:43
356
原创 错误记录:MIME type may not contain reserved characters
最近遇到个问题,随手记录一下!新做了一个项目,要通过HTTP请求发送ZIP文件到OSS平台,但上传过程中,总是出现下面错误提示:初步判定,应该是包冲突原因!于是,分析MIME-TYPE获取源码发现,使用到的mime-util.jar版本号为2.1.3,得到的具体类型为:application/zip,application/x-compressed,application/x-zip-compressed,multipart/x-zip;而发送过程中,我使用的HTTP文件包为:httpcore.jar
2020-06-10 20:48:12
5212
原创 手写一个监听器
1.事件对象public class Even { private Robot robot; public Even() { super(); } public Even(Robot robot) { super(); this.robot = robot; } public Robot getRobot() { return robot; } public vo
2020-05-28 20:10:19
493
原创 InvalidProgramException: Specifying keys via field positions is only valid for tuple data types
Run Flink实例时,出现如下错误:原因:Java程序引用了Scala的Tuple2类遇到的坑,记录下来!
2019-11-01 16:11:26
4422
4
原创 java 8中撤销永久代,引入元空间
撤销永久代,引入元空间: 在 JDK 1.8 中,HotSpot 已经没有 “PermGen space”这个空间了,取而代之是一个叫做 Metaspace(元空间) 的东西。 Java7中已经将字符串常量池从永久代移除,在Java 堆(Heap)中开辟了一块区域存放字符串常量池。而在Java8中,已经彻底没有了永久代,将方法区直接放在一个与堆不相连的本地内存区域,这个区域被叫做元空间...
2019-10-18 16:06:52
217
转载 内存溢出的几种原因和解决办法(转)
OOM的常见情况:第一类 堆栈溢出:java.lang.OutOfMemoryError: ......java heap space.....也就是当你看到heap相关的时候就肯定是堆栈溢出了,此时如果代码没有问题的情况下,适当调整-Xmx和-Xms是可以避免的,不过一定是代码没有问题的前提,为什么会溢出呢,要么代码有问题,要么访问量太多并且每个访问的时间太长或者数据太多,导致数据释放不...
2019-09-23 17:30:04
3103
原创 学习笔记--数据结构
数据结构数据结构的分类线性结构:数据、栈、队列、链表树结构:二叉树、二分搜索树、AVL、红黑树、Treap、Splay、堆、Trie(前缀树)、线段树、K-D树、并查集、哈夫曼树。。。图结构:邻接矩阵、邻接表数据结构 + 算法 = 程序数据结构数组栈队列链表二分搜索树堆线段树Trie并查集AVL红黑树哈希表数组最大优点:快速查询数据最好应用于“索引有...
2019-04-28 17:10:30
372
原创 System.nanoTime与System.currentTimeMillis比较
System.nanoTime与System.currentTimeMillis比较currentTimeMillis返回的是系统当前时间和1970-01-01之前间隔时间的毫秒数,如果系统时间固定则方法返回值也是一定的(这么说是为了强调和nanoTime的区别),精确度是毫秒级别的nanoTime的返回值本身则没有什么意义,因为它基于的时间点是随机的,甚至可能是一个未来的时间,所以返回值可...
2019-04-28 16:27:10
198
原创 Java中instanceof和isInstance区别详解
Java中instanceof和isInstance区别详解1. obj.instanceof(class)也就是说这个对象是不是这种类型,1)一个对象是本身类的一个对象2)一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象3)所有对象都是Object4)凡是null有关的都是false null.instanceof(class)2. class.inInsta...
2019-04-28 16:19:47
257
原创 避免实例化特有工具类
避免实例化特有工具类对于特有工具类,我们需要使用以下三种技术对其进行封装保护:① 用final修饰符,防止了类的继承。② 构造方法私有化,防止了类构建实例对象。③ 构造方法内抛出异常,防止了反射机制对其进行反射构建。...
2019-04-28 16:15:15
208
原创 加载Properties文件工具类:LoadConfig
import javax.servlet.http.HttpServletRequest;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.QueryParam;import javax.ws.rs.core.Context;import javax
2017-02-04 17:08:07
690
转载 详解SVN 的使用
一、什么是SVNSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。二、SVN的下载安装下载地址:https://tortoisesvn.net/downloads.zh.html安装完不要忘记重启电脑安装完成后,按下鼠标右键,会看到如下界面:说明SVN已
2017-01-11 11:09:48
269
转载 HTTP Content-Type
HTTP content-typeContent-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。HTTP content-type 对照表文件扩展名Content-Type(
2017-01-10 12:13:51
291
转载 MIME 参考手册
MIME 类型MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。官方的 MIME 信息是由 Internet Engineering Task Force (IETF) 在下面的文档中提供的:RFC-822 Standar
2017-01-10 11:00:47
274
原创 HTTP Request Method(十五种)
序号方法描述1GET请求指定的页面信息,并返回实体主体。2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
2017-01-09 11:18:17
8954
原创 从request获取各种路径总结
request.getRealPath("url"); // 虚拟目录映射为实际目录 request.getRealPath("./"); // 网页所在的目录 request.getRealPath("../"); // 网页所在目录的上一层目录 request.getContextPath(); // 应用的web目录的名称 如http://localhost:
2017-01-06 17:28:06
176
原创 字符与字节的区别
(一)“字节”的定义字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。(二)“字符”的定义字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。(三)“字节”与“字符”它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:
2017-01-03 15:06:33
171
原创 面向对象五大原则
(一)面向对象五大基本原则以前一直认为程序中的类有使用到封装继承多态就是面向对象设计,其实不然封装,继承,多态只是面向对象的三大特性,但是在设计程序的时候并不是说类的结构使用到了(或是体现出了)这三个特性就是面向对象,其实真正的面向对象设计是要符合下面的五大原则,面向对象的五大基本原则单一职责原则(SRP)开放封闭原则(OCP) 里氏替换
2017-01-03 15:05:52
280
转载 Struts/Servlet,action转到jsp后,CSS失效,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
问题:使用struts2,如何处理action的路径?还有,在action转到的jsp中,如何写js,css,图片的路径?(例如访问http://localhost/project/listUser.action后转到http://localhost/project/user/listUser.jsp,这时候浏览器还是停留在http://localhost/project/addUser.ac
2017-01-03 15:04:58
460
原创 编码体系
体系编辑ASCII我们日常接触到的文件分ASCII和Binary两种。ASCII是“美国信息交换标准编码”的英文字头缩写,可称之为“美标”。美标规定了用从0到127的128个数字来代表信息的规范编码,其中包括33个控制码,一个空格码,和94个形象码。形象码中包括了英文大小写字母,阿拉伯数字,标点符号等。我们平时阅读的英文电脑文本,就是以形象码的方式传递和存储的。美标是国际上大部分大小电脑的
2017-01-03 15:03:56
570
原创 setOff与scrollTop区别
1.offsetTop :当前对象到其上级层顶部的距离.不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.2.offsetLeft :当前对象到其上级层左边的距离.不能对其进行赋值.设置对象到页面左部的距离请用style.left属性.3.offsetWidth :当前对象的宽度.与style.width属性的区别在于:如对象的
2017-01-03 15:03:16
384
原创 MySql 学习笔记
一、SQL语句概述1、概念SQL(Structured Query Language)结构化查询语言。是数据库使用的标准语言。2、分类数据定义语言(DDL)CREATE,ALTER,DROP等命令数据操作语言(DML)INSERT,DELETE,UPDATE等命令数据查询语言(DQL)SELECT等命令数据控制语言(DCL)GRANT,REVOKE等命令 二、D
2017-01-03 15:02:18
273
原创 JSP中文乱码问题
之前总是碰到JSP页面乱码的问题,每次都是现在网上搜,然后胡乱改,改完也不明白原因。这次正好作下总结,中文乱码就是因为编码不符,可能出现乱码有四个地方:1 JSP编码乱码2 HTML编码乱码3 request获取数据乱码4 response输出信息乱码5 Cookie导致的编码问题下面将会对上面几种情况进行介绍:JSP乱码 这种是最常见的,设置编码的位置位于J
2017-01-03 15:00:47
181
转载 JSP、Servlet中的相对路径和绝对路径 页面跳转问题
1.JSP、Servlet中的相对路径和绝对路径 前提:假设你的Http地址为http://192.168.0.1/你的web应用为test,path="/test"那么你的web应用URL为http://192.168.0.1/test/ 如果JSP,JS文件放在WEB-INF目录下根本无法访问的,JSP如果放在WEB-INF目录下可以通过服务器内部转向进行访问(主要是为了
2017-01-03 14:59:24
475
转载 JDK1.5-1.8的区别
jdk5新特性1、自动装箱和拆箱2、枚举3、静态导入4、可变参数5、內省 是Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性那么,那我们可以通过getName,setName来得到其值或者设置新的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter,setter方法,通
2017-01-03 14:58:41
2862
原创 Jdbc与Dao和Javabean的区别
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名DAO是Data Access Object数据访问接口,数
2017-01-03 14:58:05
6850
转载 HTTP 状态码解义
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。中文名HTTP状态码外文名HTTP Status Code规范定义RFC 2616消息端1字头,2字头,3字头目
2017-01-03 14:57:09
353
原创 HTML与XHTML之间的区别
HTML与XHTML之间的差别,粗略可以分为两大类比较:一个是功能上的差别,另外是书写习惯的差别。关于功能上的差别,主要是XHTML可兼容各大浏览器、手机以及PDA,并且浏览器也能快速正确地编译网页。因为XHTML的语法较为严谨,所以如果你是习惯松散结构的HTML编写者,那需要特别注意XHTML的规则。但也不必太过担心,因为XHTML的规则并不太难。下面列出了几条容易犯的错误,供大家引
2017-01-03 14:55:44
228
原创 Struts2中Get请求转码问题
Tomcat默认编码为ISO859-1Post提交时,struts2会对其转码为iso8859-1,因此不需要另外转码,而 Get提交表单,则需要单独转码,转码过程如下图:
2017-01-03 14:54:17
525
转载 HTTP协议中PUT和POST使用区别
有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源;有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源;还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一个资源。这些观点都只看到了风格,争论起来也只是争论哪种风格更好,其实,用PUT还是POST,不是看这是创建还是更新资源的动作,这不是风格的问题,而是语义的问题。在HTTP中,PUT被定
2017-01-03 14:50:03
226
空空如也
JSTL与java小脚本之间的套用
2016-08-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人