Java 开发
Chgl16
这个作者很懒,什么都没留下…
展开
-
try-catch-finally一些问题
finally是必须执行的语句块,即便try或者catch有返回。但是测试过其实try或者catch里面的return是先执行的,只是结果缓存了,没有跳转,而是到了finally语句块。来两段代码记录下public class App { public static void main( String[] args ) { System.out.println("P...原创 2019-07-09 22:12:21 · 460 阅读 · 0 评论 -
Java类、接口、方法、变量修饰符总结
Java修饰符修饰符很多,可以分为访问控制修饰符和非访问控制修饰符。(以下在JDK1.8所测)有 public、private、protected、缺省、static、final、synchronized、abstract…①访问控制修饰符修饰符说明public对所以累可见。可使用在:类、接口、方法、变量。private在同一个类可见。可使用在:方法、变量。...原创 2019-02-25 16:49:50 · 884 阅读 · 1 评论 -
Servlet-API-4.0.1目录结构,常用类接口源码
1. 目录结构http子包机构2. Servlet接口javax.servlet.Servlet是一个接口package javax.servlet;import java.io.IOException;public interface Servlet { void init(ServletConfig var1) throws ServletException;...原创 2019-02-25 14:43:15 · 835 阅读 · 0 评论 -
Java创建对象父子类代码块加载顺序
package xyz.cglzwz.question_bank;public class LoadOrder { public static void main(String[] args) { new B(); }}/** * 父类 * * @author chgl16 */class A { public A() { System.out.print...原创 2019-02-18 21:29:40 · 471 阅读 · 0 评论 -
同步临界区的访问
概念要点 同步可以解决诸如竞态条件、数据竞争、缓存变量的线程问题。同步是JVM的一个特性,在保证两个或者多个并发线程不会同时执行同一块临界区,临界区就必须以串行方式访问的一段代码块。 因为其他线程在临界区中的时候每条线程对该临界区的访问都会互斥地执行,这种同步属性就称为互斥。也因此线程获取到的锁经常称为互斥锁。 同步保证每一条线程在临界区执行的时候总是看到共享变量最近的修改。当进入临界...原创 2019-02-17 18:19:30 · 658 阅读 · 0 评论 -
Java线程Thread和Runable
线程图片来自网络线程状态可以通过 线程对象.getState()方法获取,是枚举类型。以下是JDK1.8的线程状态源码 public enum State { /** * Thread state for a thread which has not yet started. */ NEW, ...原创 2019-02-05 21:46:39 · 475 阅读 · 0 评论 -
Java实现BCrypt加密
描述BCrypt是比较流行的加密算法,相比MD5。BCrypt还是多对多,在数据库存加密数据方面很实用。Spring Security里面集成了BCrypt的算法,但是普通项目可以用一个第三方开发的工具栏,这里粗略介绍这个工具类。使用下载=>下载该工具类加密 & 验证// Hash a password for the first timeString hashed...原创 2018-12-25 17:40:38 · 3937 阅读 · 0 评论 -
支付宝支付接口总结
登陆蚂蚁金服提供了支付的测试环境和测试商家卖家账号和卖家账号,也提供了一套demo登陆时使用自己真实线上的支付宝,服务可选择个人自研开发。~> 开放平台-沙箱环境沙箱配置APPID和支付宝网关都是其自动生成提供的,不需要配置,沙箱只需要在在这里配置密钥。记得用私钥签名公钥验证下其正确性。1.只能填写和修改应用公钥,支付宝公钥会自动对应生成,两个公钥是不一样的(仅仅头尾像而...原创 2018-11-21 11:19:39 · 14275 阅读 · 1 评论 -
Java 获取当前时间的前几分钟的时间点的方法
问题描述有时候比如知道当前时间是 12:25:12, 先获取5分钟前的时间即分钟数-5为12:20:12但是如果时间是12:03:12, 前五分钟为11:58:12, 获取就开始要判断了,如果获取前多少秒的话更复杂。 好在Java提供了这一时间处理方法/* 导包 */import java.text.SimpleDateFormat;import java.util.Ca...原创 2018-10-08 23:52:25 · 36411 阅读 · 1 评论 -
Java中时间格式yyyyMMddHHmmss的大小写问题
字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996 ; 96 M 年中的月份 Month July ; Jul ; 07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天数...转载 2018-10-08 12:34:29 · 10646 阅读 · 0 评论 -
后台管理实现分页显示----核心分页对象
需求实现简单的分页管理数据的页面功能,类似下面采用物理分页方式:即每打开一页都交互从后台取回需要页数据同时也有逻辑分页方式,就是一次交互,后台把所有的所有页面数据一起发过来,前端自己分页显示。虽交互简单,但也不没了实时性,不提倡。解决方法物理分页,交互核心对象Pagepackage xyz.cglzwz.bean;import java.util.List;/** *...原创 2018-10-17 22:27:42 · 2231 阅读 · 1 评论 -
Java String深入解析
① 基础String虽然不是基本数据类型,但是很像基本数据类型。String s1 = "test";String s2 = new String("test");对于第一条,会在常量区创建一个"test"字符串(如果没有),然后s1是压入栈中的一个变量,指向常量区中的"test"对于第二条,new的对象都是在堆中创建的,s2作为对象的引用也是存放在栈中,指向堆中的这个对象。所有 ...原创 2019-03-01 14:55:41 · 321 阅读 · 0 评论 -
Java中堆、栈、常量池等概念解析
程序运行时,我们最好对数据保存到什么地方做到心中有数。特别要注意的是内存的分配。有六个地方都可以保存数据:(1) 寄存器。这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。(2) 栈(stack)。存放基本类型的变量数据和对象的引用,但...转载 2019-02-25 18:22:07 · 238 阅读 · 0 评论 -
高并发synchronized深入详解
1. synchronized概述 synchronized是Java的一个关键字,修饰符。是Java多线程加锁机制的一种,一种隐式内置锁/监听器锁(对比显式Lock锁)。它也是一种互斥锁,保证了被修饰的块每次只能有一条线程访问。1.1 细分对象锁:synchronize修饰的是实例方法、synchronized语句块参数使用的是实例对象类锁: synchronized修饰的是类方法、...原创 2019-04-05 23:29:41 · 1021 阅读 · 0 评论 -
JVM运行时数据区域
个人学习整合自:《深入理解Java虚拟机》 周志明著原创 2019-03-23 17:43:54 · 317 阅读 · 0 评论 -
Java异常处理机制
1. 异常层次结构图图片来自网络,侵删。Java异常的处理机制是:抛出异常,捕获异常Java异常都是对象,都派生自java.langThrowable类,主要分为Exception和Error两类Error:程序无法处理的严重错误, 比如OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。Exception:程序本身可以处理的异常,分为运...原创 2019-03-21 17:48:00 · 312 阅读 · 1 评论 -
Java面向对象设计原则
个人学习整合自《Java设计模式》 刘伟 编著面向对象设计原则目的是软件的可维护性和可复用性。最常见的有以下七个。1. 单一职责原则Single Responsibility Principle(SRP)一个对象一个只包含单一的职责,并且该职责被完整地封装在一个类中。比如说一个类里面有数据库连接方法,数据库CRUD方法,显示打印方法,那么对应的实例对象的职责就太多了。以后...原创 2019-03-11 23:56:50 · 1921 阅读 · 0 评论 -
Java值传递和引用传递
引用传递package xyz.cglzwz.question_bank;public class DeliverTest { public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); c...原创 2019-03-04 20:55:07 · 348 阅读 · 0 评论 -
Java 快速排序
快排本质上也是交换排序。不过对比交换排序的只能一直替换相邻元素的费劲。快排使用双向检索交换。好久不写,漏洞百出。常见的数组下标越界问题。package xyz.cglzwz.question_bank;public class QuickSort { public static void main(String[] args) { int[] s = new int[] {0, ...原创 2019-03-10 11:36:25 · 490 阅读 · 0 评论 -
Java对象未初始化,可以调用对象类的静态方法
package xyz.cglzwz.question_bank.simple;public class StaticTest { public static void sayHi() { System.out.println("hi"); } public void sayBye() { System.out.println("bye"); } public sta...原创 2019-03-07 12:33:16 · 1678 阅读 · 0 评论 -
常用设计模式——创建者模式
个人整合学习自《Java设计模式》 刘伟 编著模式概述Builder Pattern: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。也是一种创建型模式。Builder(抽象建造者):接口、抽象类,一般包括builderPartX()和getResult()两种方法ConcreteBuilder(具体创建者):实现类Product(产品):被构建的复...原创 2019-03-13 22:06:04 · 614 阅读 · 0 评论 -
Java集合框架
转自 => 平凡希一、集合框架图说明:对于以上的框架图有如下几点说明所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。抽象类:5个抽象类(长虚线表示),...转载 2019-03-01 20:56:09 · 177 阅读 · 0 评论 -
Java集合remove重载方法越界问题
Java集合,如List,有remove方法,但是这是一对重载方法package xyz.cglzwz.question_bank.collectionandmap;import java.util.ArrayList;import java.util.List;public class ListDemo { public static void main(String[] arg...原创 2019-03-04 23:52:58 · 716 阅读 · 0 评论 -
Junit 单元测试@Test注解的方法报错Annotations are not allowed here
问题描述: Annotations are not allowed here 使用IDEA开发的时候,单元测试如果不使用IDE提供的方式创建,而是自己手动创建的话,会报这个错,因为没有完全导入这个注解(即便导包了)解决方法: 先使用IDE提供的为某个类创建单元测试类的步骤创建一个单元测试类 在需要创建单元测试类的类代码中鼠标右...原创 2018-10-12 19:35:11 · 24688 阅读 · 0 评论 -
转:Java实现短信验证码(阿里云服务商)
转自: https://blog.csdn.net/qq_38723394/article/details/804955221.先去阿里云开通短信服务:2.添加模板及签名:需要审核,个人账户审核就几分钟就OK先解释一下模板及签名:标准参照:https://help.aliyun.com/document_detail/55324.html?spm=5176.sms-sign.0...转载 2018-09-15 18:12:32 · 2671 阅读 · 0 评论 -
Servlet执行流程和生命周期
慕课网学习而来:https://www.imooc.com/video/5550流 程客户端请求(就是在浏览器输入一个url) 如 <a href="top/chgl16/servlet/MyServlet1">跳转</a> # url = "top/chgl16/servlet/MyServlet1",top前加不加'/'都一样,毕竟前面...原创 2018-05-31 19:08:55 · 397 阅读 · 0 评论 -
IDEA中使用maven创建web项目
使用maven创建项目很方便在IDEA先选择新建项目勾上通过骨架archetype创建,选择中间的webapp骨架,然后next输入输入项目的坐标信息。在加载完maven配置后得到项目得到的目录树是没有java代码目录的,也没有测试代码目录和resources目录,都需要自己配(所以可以学习自定义骨架)选择 File -> Project Structure选择左边的Moduels, 子窗口...原创 2018-05-31 17:21:00 · 9821 阅读 · 0 评论 -
Java 反射机制获取 类类型 到 类方法
使用反射和接口编程还能达到解耦合的作用,反射制作获取对象是在运行时加载的,而new 对象是在编译阶段加载的获取类类型有三种方式: 1.类名.class #相当于每个类都有一个隐藏的静态属性 class2. 对象名.getClass() #相当于每个类都有一个getClass()方法3. Class.forName("类") #我们写的类也是对象,类是Class类的对象,类类型就是把类...原创 2018-05-21 21:13:46 · 670 阅读 · 0 评论 -
Java IO 之 FileWriter, FileReader
import java.io.IOException;import java.io.File;import java.io.FileWriter;import java.io.FileReader;/** * @Lin 2018.5.8 FileWriter & FileReader * 1. 先用 FileWriter 将数据写入文件(可以自动创建文件) * 2. 使...原创 2018-05-08 16:58:52 · 355 阅读 · 0 评论 -
Java IO 之 FileInputStream, FileOutputStream
FileInputStream 是从文件输入 文件必须存在read方法返回的是读取字节的长度import java.io.File;import java.io.InputStream;import java.io.FileInputStream;import java.io.OutputStream;import java.io.FileOutputStream;import jav...原创 2018-05-08 16:10:27 · 336 阅读 · 0 评论 -
Java多态性--父类的引用指向子类的对象
/** * @Lin 2018.5.7 * Animal a = new Dog() * 父类的引用指向子类的对象,此为多态性Polymorphism。 * 此对象a能调用父类的方法和子类重写的方法,父类被重写的方法被覆盖了。 * !! 不能调用子类添加的方法。 * 构造方法从父类到子类。 */class Animal { void eat() { Syst...原创 2018-05-07 21:33:09 · 227 阅读 · 0 评论 -
java运行字节码.class文件问题-------找不到或者无法加载主类
此为maven测试。这个Hello.java文件里面含有package club.chgl ….. 的头语句,编译生成字节码文件在target/classes/..package..下面,如过要运行,在该文件那里是会显示找不到或无法加载主类的。只有在classes目录下,就是包目录前运行才可以。测试项目包:注: 若Hello.java前面没有 package …. 语句,则可以在任何地方运行。...原创 2018-04-28 19:19:11 · 910 阅读 · 0 评论 -
Jsp和Servlet交互方法
Jsp和Servlet交互有两种方法,一种是编写**web.xml**文件注册,其二是更便捷的一条语句(位于对应的servlet类):**@WebServlet(&quot; &quot;)**。详细:方法1:web.xml法![前者是jsp文件的编写,action=&quot;chen&quot;, 后者为web.xml文件的配置,servlet-name是可以随意取的,不过在&lt;servlet&g原创 2017-12-06 20:30:25 · 2401 阅读 · 0 评论 -
Java 新手小记 -- 持续
1. public: 一个*.Java文件只能包含一个 public 类, 不声明为public 的多少都可以 (因为不然运行可能提示找不到主类)。2. 抽 象: 以 abstract 声明抽象方法所在的类也必须声明为 abstract 抽象类。继承抽象父类的子类如果不重写父类的抽象方法,同样子类也要声明为抽象类。3. main: main方法放在public clas原创 2017-09-21 19:51:25 · 218 阅读 · 0 评论 -
web.xml报错:The content of element type "web-app" must match "(icon?,display-name?,description?...
web.xml的<web-app>节点位置报错:The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-map...原创 2018-09-23 22:10:11 · 483 阅读 · 0 评论 -
Java 三大器之过滤器Filter
过滤器是用来过滤web请求的,比如有一个网站域名打开的是首页,如果登陆的用户可以点击首页的去查看个人信息啥的,但是没有登陆的用户是没有个人信息的,也无权访问这些页面。所有可以使用过滤器来过滤这些非法未登陆的url, 在重定向,就是没登陆的用户访问个人信息会强制自动跳转到登陆页面。而登陆成功的用户可以正常访问。 过滤器完全在后台编写,前端什么都不需要参与,过滤器Filt...原创 2018-09-24 13:27:29 · 391 阅读 · 0 评论 -
Java时间处理类 SimpleDateFormat对象的parse方法处理12点变成00点
SimpleDateFormat是个用得很高频率的时间处理类该对象的俩个主要方法:parse方法:将字符串类型(java.lang.String)解析为日期类型(java.util.Date)format方法:将日期类型(Date)数据格式化为字符串(String) 问题:使用SimpleDateFormat对象format调用函数parse("时间字符串")打印到12点和24...原创 2018-09-22 15:47:27 · 6924 阅读 · 1 评论 -
JDBC 封装ResultSet返回List
package top.cglzwz.Test1;import java.sql.ResultSet;import java.util.List;import java.util.Map;/** * * ResultSet返回List * * @author chgl16 * @Date 2018.10.11 * */public interface Resul...原创 2018-10-11 19:55:29 · 1201 阅读 · 0 评论 -
Java 计算两个Data对象的时间差
需求原因: 有时候需要计算两个Date对象的时间差来定时处理某种事务,获取到的时间差可以是分钟差,秒差,毫秒等等,相互转化即可 使用比较简单,Java提供了对应的APIpackage io.bbc13.util;import java.text.ParseException;import java.text.SimpleDateFormat;import ja...原创 2018-09-24 20:08:29 · 4281 阅读 · 0 评论 -
Java 三大器之监听器Listener
监听器需求原因: 有时候希望不需要用户发起请求而后台定时处理某种事务。如签到功能模块,每天凌晨00:00自动将用户数据库的所有签到状态自动更新为未签到,这是不需要用户发请求的,是后台自动定时触发处理的。 实现方法: 定义一个 extends HttpServlet implements ServletContextListener 的监听类...原创 2018-09-24 20:04:14 · 412 阅读 · 0 评论