
Java
陌尘吖
爱生活,爱编程。
展开
-
Java随机数
Java随机数一、如何生成随机数1.1使用Random类Modifier and TypeMethod and DescriptionDoubleStreamdoubles() 返回一个有效的无限流的伪随机 double值,每个值在零(包括)和一(独占)之间。DoubleStreamdoubles(double randomNumberOrigin, doub...原创 2020-04-23 16:40:39 · 350 阅读 · 0 评论 -
JVM Garbage First 垃圾回收器
文章目录JVM Garbage First 垃圾回收器1、Young Collection2、Young Collection + CM3、Mixed Collection4、Full GC5、Young Collection 跨带引用6、Remark7、JDK 8u20 字符串去重8、JDK 8u40 并发标记类卸载9、JDK 8u60 回收巨型对象10、JDK 9 并发标记起始时间调整JVM...原创 2020-02-14 13:02:44 · 359 阅读 · 0 评论 -
JVM垃圾回收
文章目录JVM垃圾回收一、如何判断对象可以回收1、引用计数法2、可达性分析算法2.1使用ecplise工具Memory Analyzer2.2示例代码2.3生成堆转储文件2.4使用Memory Analyzer2.5结果图示3、引用方式3.1强引用3.2软引用(SoftReference)3.3弱引用(WeakReference)3.4虚引用(PhantomReference)3.5终结器引用(F...原创 2020-02-13 20:15:36 · 639 阅读 · 0 评论 -
JVM直接内存
JVM直接内存一、定义Direct Memory常见于NIO操作时,用于数据缓冲区分配回收成本较高,但读写性能高不受JVM内存回收管理图示二、示例package com.mochen.test;import java.io.FileInputStream;import java.io.FileOutputStream;import java.nio.ByteBuffe...原创 2020-02-06 19:45:30 · 526 阅读 · 1 评论 -
JVM中StringTable概述及调优
JVM中StringTable三、特性常量池中的字符串仅是符号,第一次用到时才变为对象利用串池的机制,来避免重复创建字符串对象字符串变量拼接的原理是StringBuilder(1.8)字符串常量拼接的原理是编译器优化可以使用intern方法,主动将串池中还没有的字符串对象放入串池二、JVM编译期优化StringTable为hashtable结构,不能扩容public ...原创 2020-02-05 19:25:11 · 1218 阅读 · 2 评论 -
JVM内存结构
JVM内存结构程序计数器虚拟机栈本地方法栈堆方法区一、程序计数器1.1定义Program Counter Register 程序计数器(寄存器)1.2作用在java程序执行前会将java文件编译为二进制字节码(jvm指令)计数器的作用就是记住下一条jvm指令的执行地址(储存在寄存器中)1.3特点线程私有不会存在内存溢出二、虚拟机栈(JVM Stacks...原创 2020-02-04 21:26:09 · 110 阅读 · 0 评论 -
Java实现二叉排序树
Java实现二叉排序树1.二叉树的概念和特点1.1二叉树特点每个节点最多有两颗子树左子树和右子树是有顺序的,次序不能颠倒。即使某个节点只有一个子树,也要区分左右子树图示1.2节点节点的组成指向它的左子节点节点中的内容指向它的右子节点图示1.3二叉排序树二叉排序树的特点每个根节点中的左子节点的值都小于根节点中的值每个根节点中的右子节点的值...原创 2020-02-04 16:42:38 · 327 阅读 · 0 评论 -
Java web Listener监听器
Listener:监听器概念:web三大组件之一事件监听机制事件:一件事情事件源:事件发生的地方监听器:一个对象注册监听:将事件、事件源、监听器绑定在一起。当事件源上发生某个事件后,执行监听器代码。ServletContextListener:监听Servletconte对象的创建和销毁void contextDestroy(ServletContextEvent s...原创 2020-01-15 18:02:09 · 145 阅读 · 0 评论 -
Java web动态代理
代理增强对象的功能设计模式:一些通用的解决固定问题的方式装饰模式代理模式概念真实对象:被代理的对象代理对象代理模式:代理对象代理真实对象,达到增强真实对象功能过的目的实现方式静态代理:类文件描述代理模式动态代理在内存中形成代理类代理对象和真实对象实现相同的接口Proxy.nowInstance();获取代理对象使用代理对象调用方法增强方法增...原创 2020-01-15 17:30:18 · 348 阅读 · 0 评论 -
Java web Filter过滤器
Filter:过滤器当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能过滤器的作用:一般用于完成通过的操作登录验证同意编码处理敏感字符过滤步骤定义类,实现接口Filter复写方法配置拦截路径web.xml注解生命周期在服务器启动后,会创建Filter对象,然后调用init方法在拦截到请求时执行doFilter方法在服务器关闭后,...原创 2020-01-15 17:00:12 · 152 阅读 · 0 评论 -
JSTL标签
JSTL标签概念javaserver pages tag library jsp标准标签库是由apache组织提供的开源的免费的jsp标签作用用于简化和替换jsp页面上的java代码使用步骤带入jar包引入标签库:taglib指令:<%@ taglib %>使用标签常用JSTL标签if:if属性:test,接收boolean表达式若...原创 2020-01-12 09:20:37 · 292 阅读 · 0 评论 -
idea中jsp引入jstl标签库问题
解决idea中jsp引入jstl标签库问题一、下载jar包地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/选择jakarta-taglibs-standard-1.1.2.zip下载解压文件将解压后的lib目录下的两个jar包添加到自己的项目lib目录下选中复制好的两个jar包,右键->...原创 2020-01-12 08:51:14 · 1956 阅读 · 1 评论 -
MVC、EL表达式
MVC介绍M:Model,模型JavaBean完成具体的业务操作V:View,视图JSP展示数据C:Controller,控制器Servlet获取用户的输入调用模型将数据交给视图进行展示优点耦合性低,方便维护,便于分工协作重用性高缺点使得项目架构变得复杂EL表达式概念:Expression Language 表达式语言...原创 2020-01-11 10:48:04 · 449 阅读 · 0 评论 -
JSP指令、注释
JSP指令作用用于配置JSP页面,导入资源文件格式<%@ 指令名称 属性名1=属性值1 ...%>分类page:配置jsp页面contentType等同于response.setContentType()设置响应体的mime类型以及字符集设置当前jsp页面的编码(只有高级开发工具可以生效,其余需要pageEncodeing属性)langua...原创 2020-01-11 09:41:04 · 333 阅读 · 0 评论 -
Java web原生验证码登录
java web原生验证码登录功能需求实现验证码检查登录跳转错误提示实现流程创建登录页面,使用表单提交<form action="login" method="post"> <input id="usernameI" name="username" placeholder="user name" type="text"><br>...原创 2020-01-10 12:29:43 · 479 阅读 · 0 评论 -
Cookie记忆上一次访问时间
Cookie记忆上一次访问时间需求访问Servlet,如果是第一次访问,提示:你好,欢迎您首次访问若不是第一次访问,则提示:欢迎回来,您上次访问时间为:xxx实现解决中文乱码//解决中文乱码 req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=ut...原创 2020-01-10 11:01:08 · 386 阅读 · 0 评论 -
Java web Session概述
Session概念服务器端会话技术,在一次会话中多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession快速入门使用HttpSession:Object getAttribute(String name)void setAttribute(String name, Object value)void removeAttribute(String name)...原创 2020-01-10 10:43:27 · 472 阅读 · 0 评论 -
Jsp概述
JSP概念Java Server Pages:java服务器端界面动态页面原理本质为Servletjsp脚本在jsp中定义java代码<% 代码 %>:相当与main方法<%! 代码 %>:在jsp转换后的java类的成员位置<%= 代码 %>:相当于输出语句,可以将内容输出到页面上内置对象概念:在jsp页面...原创 2020-01-09 17:06:34 · 292 阅读 · 0 评论 -
Java web Cookie概述
Cookie会话一次会话中包含多次请求与响应功能:共享数据方式:客户端会话技术:Cookie服务器端会话技术:SessionCookie概念:客户端会话技术,将数据保存到客户端步骤创建Cookie对象,绑定数据new Cookie(String name, String value)发送Cookie对象response.addCookie(Co...原创 2020-01-09 16:19:10 · 309 阅读 · 0 评论 -
Java web文件下载及中文名显示问题
文件下载功能需求页面显示超链接点击超链接后弹出下载提示框完成文件下载分析超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则出现下载提示框。使用响应头设置资源打开方式。content-disposition:attachment;filename=xxx实现功能新建servlet获取get方法中的filename参数//获取url中的参...原创 2020-01-09 10:27:15 · 726 阅读 · 1 评论 -
Java web中ServletContext使用
ServletContext概念代表整个web应用,可以和程序的容器(服务器)来通信。获取ServletContext通过request对象获取通过HttpServlet获取无论通过那种方式获取到的ServletContext都是同一个对象功能获取MIME类型在互联网通信中定义的一种文件数据类型格式:大类型/小类型、text/html、image/jpeg...原创 2020-01-08 10:39:15 · 541 阅读 · 0 评论 -
Java web实现动态图片验证码
验证码防止恶意表单注册生成验证码图片定义宽高int width = 100;int height = 50;使用BufferedImage再内存中生成图片BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);绘制背景和边框Graphics g = i...原创 2020-01-08 09:55:36 · 8474 阅读 · 7 评论 -
Java web中的Request&Response
Request&Response请求流程tomcat服务器根据url中的路径,创建对应的Servlet对象。创建request和response对象,将请求消息数据封装到Request中。将Request和response传递给service方法,并调用。将方法中设置的response对象的消息数据进行响应。request和response的原理request和resp...原创 2020-01-07 18:14:31 · 290 阅读 · 0 评论 -
HTTP协议概念
HTTP协议概念Hyper Text Transfer Protocol 超文本传输协议特点基于TCP/IP的高级协议默认端口为80基于请求/响应模型-一次请求对应一次响应无状态-每次请求之间相互独立版本1.0:每一次请求响应都会建立一个新的tcp连接1.1:连接复用消息数据格式请求请求方法GET:请求参数在url后请求的url长度有限制安全性较...原创 2020-01-07 12:03:26 · 513 阅读 · 0 评论 -
Servlet(server applet)基础介绍及配置方法
Servlet(server applet)概念运行在服务器端的程序Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。自定义类,实现Servlet接口,复写方法。快速配置新建类,实现Servlet接口在web.xml中配置<servlet> <servlet-name>mainclass&l...原创 2020-01-06 10:52:28 · 721 阅读 · 0 评论 -
三、Java注解
注解概念:说明程序。定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5以后版本引入的一个特性与类、接口、枚举在同一层次。它可以声明在包、类、字段、方法、局部变量、方法参数的前面、用来对这些元素进行说明,注释。功能分类:编写文档:通过代码中标识的元数据生成文档代码分析:通过代码中标识的元数据对代码进行分析编译检查:通过代码中标识的元数据让编...原创 2019-09-23 13:33:49 · 131 阅读 · 0 评论 -
二、Java反射基础方法
Java反射框架:半成品程序。在框架的基础上进行软件开发,简化编码。反射:将类的各个组成部分封装为其他的对象。优点:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。Class对象功能:获取功能:获取成员变量:Field[] getFields():获取多有public修饰的成员变量Field getField(String name...原创 2019-09-23 13:31:49 · 144 阅读 · 0 评论 -
一、Junit单元测试
Junit单元测试测试的分类1、黑盒测试:不需要编写代码2、白盒测试:需要编写代码Junit的使用:白盒测试步骤:1、定义一个测试类:测试用例2、定义测试方法:可以独立运行3、给方法加注解:@Test4、导入Junit依赖环境判定结果红色:失败绿色:成功一般我们会用断言操作来处理结果Assert.assertEquals(期望值,结果值);@After...原创 2019-09-23 13:30:31 · 154 阅读 · 0 评论 -
Java动态代理
动态代理特点:字节码随用随创建,随用随加载作用:不修改源码的基础上对方法增强分类基于接口的动态代理Proxy基于子类的动态代理Enhancer创建代理对象基于接口的动态代理使用proxy类中的newProxyInstance方法要求:被代理类最少实现一个接口,若果没有则不能使用newProxyInstance方法的参数基于子类的动态代理使...原创 2020-01-19 09:56:24 · 136 阅读 · 0 评论 -
Java 动态代理
动态代理创建接口public interface TestDemo { void test1(); void test2();}实现接口public class TestDemoImpl implements TestDemo { @Override public void test1() { System.out.printl...原创 2019-12-25 16:17:10 · 133 阅读 · 0 评论 -
Java 线程
创建线程的方法继承thread类继承Thread类并重写run方法public class TestThread extends Thread { @Override public void run() { super.run(); System.out.println("执行Thread.run"); }}调用继承Thre...原创 2019-12-25 14:26:18 · 130 阅读 · 0 评论 -
Java反射
反射反射相关APIjava.lang.Class:类java.lang.reflect.Method:方法java.lang.reflect.Field:成员变量java.lang.reflect.Constructor:构造方法首先创建Person类用来测试反射public class Person extends Animal implements Move, Study...原创 2019-12-24 21:25:02 · 174 阅读 · 0 评论 -
Java IO操作
IO流FileInputStream文件输入流示例代码//获取文件输入流filePath为文件路径FileInputStream fis = new FileInputStream(filePath);//获取文件中的数据byte[] bytes = fis.readAllBytes();//将数据转换为string并打印System.out.println(new Strin...原创 2019-12-22 16:25:32 · 261 阅读 · 0 评论