JAVA
文章平均质量分 81
流烟默
这个作者很懒,什么都没留下…
展开
-
什么是JWT?
JWT (全称:Json Web Token)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。简单点说就是一种认证机制),让后台知道该请求是来自于受信的客户端。其是目前最流行的跨域身份验证解决方案,常见流程如下:客户端使用用户名跟密码请求登录,服务端收到请求去验证用户名与密码;原创 2017-10-26 10:16:06 · 8739 阅读 · 0 评论 -
String,StringBuffer,StringBulider区别与联系
一张图表明三者区别:代码测试三者效率: @Test public void test3(){ String text = ""; long startTime = 0L; long endTime = 0L; StringBuffer buffer = new StringBuffer("");原创 2016-10-02 14:01:40 · 662 阅读 · 0 评论 -
Java异常那些事
【1】异常简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。 J转载 2017-10-17 17:40:20 · 394 阅读 · 0 评论 -
Java泛型详解
【1】概述在引入范型之前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就可以在细分成更多的类型。例如原先的类型List,现在在细分成List<Object>, List<String&am原创 2017-09-10 12:06:58 · 889 阅读 · 0 评论 -
Servlet实现的几种形式
先看示意图:1.继承GenericServletpublic class TestServlet extends GenericServlet { private static final long serialVersionUID = 1L; @Override public void service(ServletRequest req, Ser...原创 2016-11-17 14:46:49 · 1301 阅读 · 0 评论 -
枚举类 - 自定义枚举类与使用enum关键字
1.自定义实现枚举类public class TestSeason { public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring); spring.show(); System.out.pri原创 2016-11-16 16:09:02 · 4242 阅读 · 0 评论 -
对象的序列化与反序列化详解
Java对象序列化时参与序列化的内容包含以下几个方面:1.属性,包括基本数据类型、数组以及其他对象的引用; 2.类名。不能被序列化的内容有以下几个方面:1.方法。 2.有static修饰的属性。 3.有transient修饰的属性。在序列化过程中不仅保留当前类对象的数据,而且递归保存对象引用的每个对象的数据。将整个对象层次写入字节流中,这也就是序列化对象的“深复制”,即复制对象本身及引用的对象原创 2016-09-30 10:47:45 · 5875 阅读 · 0 评论 -
Java反射机制(Reflection)简解与示例
在java环境中,反射机制允许程序在执行时获取某各类自身的定义信息,例如属性和方法等也可以实现动态创建类的对象、变更属性的内容或执行特定的方法的功能。从而使java具有动态语言的特性,增强了程序的灵活性和可移植性。反射机制的作用:1.在运行时判断任意一个对象所属的类型; 2.在运行时构造任意一个类的对象; 3.在运行时判断任意一个类所具有的成员变量和方法; 4.在运行时调用任意一个对象的方法,原创 2016-11-21 17:03:43 · 1052 阅读 · 0 评论 -
Java常用类中随机数讲解与实践
项目中时长用到不同长度的随机数,这里简要说明一些方法。【1】Random代码实例一如下:Random random = new Random();int nextInt = random.nextInt();其nextInt()的JavaDoc如下:Returns the next pseudorandom, uniformly distributed int v......原创 2018-03-30 17:01:40 · 582 阅读 · 0 评论 -
一文读懂反射机制
注意,这篇文章因为内容太多,所以篇幅非常长。中途受不了的同学可以回到目录跳转到感兴趣的小节进行学习。 向一个门外汉介绍反射 反射入口 Class Class 的获取 通过 ObjectgetClass 通过 class 标识 通过 ClassforName 方法 Class 内容清单 Class 的名字 当 Class 代表一个引用时 当 C...转载 2017-10-09 14:36:57 · 3159 阅读 · 0 评论 -
JSON中FastJSON使用总结
【1】保留value为null的对象默认情况下,fastJSON是过滤调value为null的对象的。可使用如下语法使其保留:JSON.toJSONString(parseObject, SerializerFeature.WriteMapNullValue);orJSONObject.toJSONString(parseObject, SerializerFeature.Wr原创 2018-01-10 17:52:16 · 1864 阅读 · 0 评论 -
修改Request与Response中的内容
需求背景:与客户端通信内容需要加密。客户端将请求参数进行加密,服务端对响应结果进行加密。那么对于后端而言,最方便的就是在过滤器里面对请求、响应进行统一处理了。这里需要涉及到HttpServletRequestWrapper与HttpServletResponseWrapper。# 【1】请求处理如下所示ParameterRequestWrapper 继承自HttpServletRequestWrapper ,重写获取参数的方法。```java/** * Created by jianggc原创 2017-01-18 15:24:37 · 5247 阅读 · 0 评论 -
JSP中的隐式对象和四种会话作用域
【1】与作用域范围有关的四个隐式对象pageScope、requestScope、sessionScope和applicationScope。它们可以读取使用JSP内置对象pageContext、request、session以及application的setAttribute()方法所设定的对象的数值—–即getAttribute(Stringname),却不能取得其他相关信息。...原创 2018-06-20 10:25:09 · 2214 阅读 · 0 评论 -
JSP应用实践总结
JSP页面插入CSS样式有三种方法,且其优先级不同。具体如下:外部样式,内部样式,内联样式。优先级依次增高!【1】外部样式 当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用<link>标签链接到样式表。<link rel="stylesheet" type="text/css" href="<%=uiPath%原创 2017-04-07 15:10:43 · 17681 阅读 · 0 评论 -
jsp页面out.print()和后台response.getWriter().print()的区别
【1】二者常见区别① 这两个对象的类型是完全不同的:内置对象out的类型是JspWriter;response.getWrite()返回的类型是PrintWriter。② 获取方式不同:JspWriter是JSP的内置对象,直接使用即可,对象名out是保留字,也只能通过out来调用其相关方法。此外还可以通过内置对象pageContext.getOut();获得。PrintWriter则是在用的...转载 2018-11-28 09:48:57 · 3259 阅读 · 0 评论 -
JSP页面请求响应过程中的编码解码
该编简要讲述:JSP页面传输过程中,浏览器与服务器的编码解码以及HTTP协议对URL进行的编码解码。无意间在网络上看到这样一个问题,让我不得其解。查询了诸多资料,稍有眉目。问题如下:所有的JSP页面的编码都是UTF-8的格式test1.jsp&amp;lt;%@ page language=&amp;quot;java&amp;quot; import=&amp;quot;java.util.*,java.net.*&amp原创 2017-02-19 17:35:51 · 5245 阅读 · 0 评论 -
Web应用中浏览器与服务端的编码和解码
基本概念有信息交换就会产生编码、传输、解码三个过程。编码是信息从一种形式转变成另一种形式的过程,正如人类的语言通过声带编码,转换成声波。解码是编码的逆函数,耳膜接收声波,通过脑神经解码成人类文化所能理解的信息。字符集是一种文化上下文下的所有文字符号集合,它的作用是规定了某个文化下的所有字符,以及该字符在信息交换系统下的表示方式,在计算机信息系统下是字节或01序列。本文会在某些时刻将字符集和编码方案互原创 2017-02-16 21:02:52 · 7897 阅读 · 4 评论 -
ASCII码对照表
回车、换行、空格的ASCII码值回车,ASCII码13换行,ASCII码10空格,ASCII码32Return = CR = 13 = '\x0d'NewLine = LF = 10 = '\x0a'ASCII码表 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的...原创 2016-12-07 11:23:21 · 2497 阅读 · 0 评论 -
项目编码解码和Tomcat配置
针对乱码解决方法:保证数据库安装的时候编码为UTF-8 ;保证jsp页面和Java文件编码为UTF-8 ;保证spring字符过滤器encode为UTF-8 ;保证Tomcat server.xml添加URIEncoding为UTF-8 ;如果URL传参数中文,使用URL编码 ;保证项目中jdbc链接添加charset=UTF-8。URIEncoding实例如下:...原创 2017-02-16 18:10:36 · 2709 阅读 · 0 评论 -
Unicode、UTF 和 ISO-8859-1等编码方式详解与浏览器URL编码
【1】编码基本知识最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。① ISO8859-1 通常叫做Latin-1;② GB2312/GBK;③ unicode;④ UTF。【2】ISO8859-1属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母a的编码为0x61=97。很明显,iso8859-1原创 2017-11-18 15:45:44 · 5873 阅读 · 0 评论 -
JSP中JSTL标签与指令使用详解
【1】c:foreach<c:forEach>标签用于通用数据循环,它有以下属性|属 性 ——- |描 述——————–|是否必须———–|缺省值items ——-进行循环的项目 ———-否——————–无 begin ——–开始条件——————否—————— 0 end ———-结束条件 ——————否———-集合中的最后一个项目 step ———–步长————原创 2016-12-23 13:54:10 · 1643 阅读 · 0 评论 -
Java中常见的访问/非访问修饰符
Java中有下列访问修饰符:private:私有变量和方法(非外部类)只能被声明它们的类的实例所使用。default:类中的数据、方法和它本身能够被声明为默认default。类中所有default成员都可以被本包中的其它类所访问。protected:相比default有更高的访问权限。只有成员变量和方法能够被声明为protected。父类的protected属性能被它的所有子类所共享。即使子类和父类原创 2017-10-17 10:59:40 · 2347 阅读 · 0 评论 -
Derby/IJ基础环境配置与使用
Apache Derby是一个完全用java编写的数据库,Derby是一个Open source的产品,基于Apache License 2.0分发。其主要特点:程序小巧,基础引擎和内嵌的JDBC驱动总共大约2MB。基于Java、JDBC和SQL标准。提供内嵌的JDBC驱动,你可把Derby嵌入到基于Java的应用程序中。支持客户端/服务器模式。安装、布置和使用简单。本篇未使用jdk内置Derb...原创 2019-11-09 09:53:51 · 2350 阅读 · 0 评论 -
支付宝对接详细教程与项目实例
【1】支付宝入住页面地址:https://open.alipay.com/platform/entryGuidance.htm#/申请通过后如下图所示:原创 2019-10-30 12:28:26 · 1667 阅读 · 0 评论 -
细琢磨,try catch finally 执行顺序与返回值
try catch finally 常见格式如下:try{//应用代码}catch(Exception e){//异常捕捉处理}finally{//资源释放、流关闭等等}通常执行顺序:try有异常时,try-catcy-finallytry无异常时,try-finally那么如果有返回值呢?try catch finally 每个部分均有return语句呢...原创 2018-12-01 09:58:34 · 1872 阅读 · 0 评论 -
Java中相等比较与值传递
【一】==与===var num = 1;var str = '1';var test = 1;test == num //true 相同类型 相同值test === num //true 相同类型 相同值test !== num //false test与num类型相同,其值也相同, 非运算肯定是falsenum == str //true 把str转换为数字,检查其是否相等。nu原创 2017-03-21 09:25:00 · 1206 阅读 · 0 评论 -
你真的清楚多态中究竟是哪个实例调用哪个方法吗?
接上文[Java的三大特性之封装、继承和多态详解](https://janus.blog.csdn.net/article/details/86497871),这里我们研究一下多态的应用。**多态继承中子类方法的调用遵循原则:**① 当引用类型与实际对象一致时,调用方法首先从自身方法匹配;然后从父类寻找。② 当引用类型为实际对象的父类时:* 2.1 如果实际对象类型与实参类型一致: * 如果实际对象重写了父类方法,那么调用重写的方法;否则,调用参数为引用类型的方法。* 2.2如果实际原创 2017-03-03 11:35:35 · 1092 阅读 · 0 评论 -
浅谈匿名内部类和局部内部类只能访问final变量
1) 从程序设计语言的理论上 局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的2) 为什么JAVA中要加上一条限制:只能访问final型的局部变量?3) JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理论上这是很自然的要求原创 2016-12-07 17:07:22 · 1121 阅读 · 1 评论 -
Java中五种新建对象方式
1.使用new关键字这是最常见的创建对象的方法,并且也非常简单。通过使用这种方法我们可以调用任何我们需要调用的构造函数。Employee emp1 = new Employee();0: new #19 // class org/programming/mitra/exercises/Employee3: dup4: invokespecial #21原创 2016-11-22 09:27:35 · 841 阅读 · 0 评论 -
Java内部类 - 局部/匿名/成员/静态内部类
内部类的主要特征:1.内部类可以声明为抽象类,因此可以被其他的内部类继承,也可以声明为final; 2.和外部类不同,内部类可以声明为private或protected,外部类只能用public和default; 3.内部类可以声明为static,但此时就不能再使用外层封装类的非static成员变量; 4.非static的内部类的成员不能声明为static的,只有在顶层类或static的内部类原创 2016-09-22 14:36:50 · 1510 阅读 · 1 评论 -
Java中基本数据类型所占字节与取值范围
基本数据类型初始化默认值:基本数据类型转换:byte-&amp;amp;amp;gt;short , char -&amp;amp;amp;gt; int -&amp;amp;amp;gt; long , float -&amp;amp;amp;gt; double int -&amp;amp;amp;gt; float long -&amp;amp;amp;gt; double基本数据类型对应的原创 2016-09-21 16:14:23 · 1339 阅读 · 0 评论 -
JavaSE - 原码,反码,补码和>>以及>>>
【1】原码原码表示法是机器数的一种简单表示法。其符号位用0表示正数,用1表示负数,数值一般用二进制形式表示。 [x]原=符号位+绝对值 x=+1100110 [x]原=01100110 x= -1100110 [x]原=11100110 所以用8位二进制数来表示整数原码时,其表示范围: 最大数:01111111,为(+127)D 最小数...原创 2018-01-26 14:15:59 · 526 阅读 · 0 评论 -
uploadify组件文件上传那些事
从一个异常引起的,TypeError: $("#file_upload").uploadify is not a function,其实就是使用uploadify组件上传文件,但是一直报莫名其妙的错误。网上众说纷纭…在此记录并上传调试好的源码。【1】uploadify组件uploadify官网:http://www.uploadify.com/ 但是从这里下载好像付费,文章末尾会附上源码和插...原创 2019-06-12 16:33:16 · 2218 阅读 · 0 评论 -
Java的三大特性之封装、继承和多态详解
面向对象编程有三大特性:封装、继承、多态。【1】封装封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。使用封装有几大好处:良好的封装能够减少耦合。类内部的结构可以自由修改。可以对成员进...原创 2019-01-15 19:23:08 · 3808 阅读 · 0 评论 -
Java基础之13种核心规范
十三个规范其实就是十三个API文档,我们可能每天都在使用,但是不知道它是什么。【1】JDBC(Java Database Connectivity)用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。跟微软的ODBC很像,应该说是ODBC和ADO的结合,创建连接和发送SQL只用JDBC一个就行了,而ODBC只是创建一个连接,还需要...转载 2019-01-20 16:17:50 · 797 阅读 · 0 评论 -
JavaSE中注解(Annotation)详细介绍与实例
【1】注解相关概念① 基本概念Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。那么什么是元数据?元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),或者说是用于提供某种资源的有关信息的结构数据(st...原创 2018-12-20 16:49:32 · 1075 阅读 · 0 评论 -
Java数值类型提升机制
【1】数值提升数字类型提升机制被用于算术运算符上,通常使用场景为:同一类型转换 有时可以使代码更清晰。拓宽原始类型转换 指byte、short、int、long、float、double由低向高转换。自动拆箱转换 基础类型引用类的拆箱方法,如r.intValue()。数值提升用于将算术运算中的操作数转化为一个相同的类型以便于运算,具体分为两种情况:一元数值提升和二元...原创 2018-08-19 12:59:02 · 1115 阅读 · 0 评论 -
Java中你所轻视的三目运算符
【1】一个小坑三目运算符是我们经常在代码中使用的,a= (b==null?0:1); 这样一行代码可以代替一个 if-else,可以使代码变得清爽易读。但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式...原创 2018-08-19 12:17:18 · 9372 阅读 · 0 评论 -
Jsoup - 使用详解与爬虫
【1】简介jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods.jsoup imp原创 2018-01-19 14:53:40 · 2307 阅读 · 0 评论 -
dom4j - 使用详解与xml-json转换
关于dom4j简介就不再赘述了,通过dom4j可以很轻松从xml中获取内容或者将string转换为xml并输出为xml文档。同样,你也可以根据需求将xml转换为客户端/前端需要的json形式。【1】获取Document的几种方式获取SAXReader 实例。SAXReader reader = new SAXReader(); ① 读取XML文件,获得docum原创 2018-01-19 16:43:01 · 2552 阅读 · 0 评论