
java基础
Tirzano
这个作者很懒,什么都没留下…
展开
-
java通用加密封装类
package com.kongjs.dcssl.utils.crypto;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.stereotype.Component;import javax.crypto.*;import java.nio.charset.StandardCharsets;import java.secu原创 2021-06-09 13:55:03 · 442 阅读 · 0 评论 -
springboot,redis自定义缓存时间配置
@EnableCaching@Configuration(proxyBeanMethods = false)public class RedisCacheManagerConfiguration {// springboot 官方写法 @Bean public RedisCacheManagerBuilderCustomizer myRedisCacheManagerBuilderCustomizer() { return (builder) -> builde原创 2021-06-08 21:13:28 · 935 阅读 · 0 评论 -
aes加密工具类
这是我的网站kongjs.com刚开始写的工具类,用aes加密package com.kongjs.diary.utils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import javax.crypto.*;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;原创 2021-06-08 21:11:10 · 486 阅读 · 0 评论 -
rsa加密工具类
这是我的网站刚开始写的工具类,用rsa加密package com.kongjs.diary.utils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;原创 2021-06-08 21:09:56 · 496 阅读 · 0 评论 -
Java 基本数据类型
public class SumType { public static void main(String[] args) { /** * 布尔类型 * 1 字节 */ boolean bool = false;// 默认 boolean bool2 = true; System.out.println("bool = " + bool); System.out.原创 2021-05-05 13:23:37 · 87 阅读 · 0 评论 -
模仿string类
public final class Str { // 不可修改 private final char[] cv; // charValue public Str() { this.cv = new char[0]; // this.value = "".value; } public Str(String str) { this.cv = str.toCharArray(); } public Str(char[]原创 2021-05-05 13:22:04 · 180 阅读 · 0 评论 -
servlet复习
ServletServlet是在Web服务器中运行的小型Java程序。Servlet通常通过HTTP(超文本传输协议)接收和响应来自Web客户端的请求。编写可扩展的通用servlet javax.servlet.GenericServlet 或 javax.servlet.http.HttpServlet 。生命周期收到HTTP请求构造Servlet,然后使用 init()方法初始化。响应请求,调用 service()方法响应处理。退出服务,调用destroy()方法销毁Servlet对原创 2021-05-05 13:12:29 · 113 阅读 · 0 评论 -
Optional包装对象类的用法
Optional 对象是一种包装器对象,要么包装对象引用,要么nullOptional<String> optionalS = Optional.of(null); // 添加值为null时,抛出异常Optional<String> optionalSn = Optional.ofNullable(null); // 添加值为null时,产生一个空的Optional<String> empty = Optional.empty(); // 产生一个空的Strin原创 2021-05-02 16:39:32 · 369 阅读 · 0 评论 -
winows上编译openjdk1.8
编译环境vs2010 英文版本(必须)cygwin (必须,make和zip必须是gnu版,其他命令可以用msys2)启动jdk版本 1.7.0_80(建议,其他版本个有坑点)环境变量D:\Env\cygwin64\binFREETYPE_CFLAGS D:\Env\freetype-2.7\includeFREETYPE_LIBS D:\Env\freetype-2.7\lib(此处避坑,不然会报编译器内部错误)C:\Program Files (x8原创 2021-03-25 14:28:57 · 443 阅读 · 0 评论 -
Spring中的Bean
SpringBean的作用域:Singleton 单例模式,Spring IOC容器只会存在一个共享的Bean实例。Prototype 原型模式,(多例模式),每次getBean都会实例化一个新的对象范围 描述Singleton (默认值)将每个Spring IoC容器的单个bean定义范围限定为单个对象实例。prototype 将单个bean定义的作用域限定为任意数量的对象实例。request 将单个bean定义的范围限定为单个HTTP请求的生命周期。也就是说,每个HTTP请求都有一个在单个b原创 2021-03-20 13:10:08 · 96 阅读 · 0 评论 -
可以使用@javax.inject来代替@Autowired。注入如下
可以使用@javax.inject来代替@Autowired。注入如下:import javax.inject.Inject;public class SimpleMovieLister {private MovieFinder movieFinder;@Injectpublic void setMovieFinder(MovieFinder movieFinder) {this.movieFinder = movieFinder;}public void listMovies() {th原创 2021-03-20 13:08:41 · 709 阅读 · 0 评论 -
java http状态码枚举类
package com.kongjs.toutiao.common.enums;public enum HttpStatusCode { /** * http状态码枚举所有状态码注解 */ CONTINUE(100, "Continue", "请继续发送请求的剩余部分"), SWITCHING_PROTOCOLS(101, "Switching Protocols", "协议切换"), PROCESSING(102, "Processing", "请求原创 2021-03-16 21:03:31 · 4013 阅读 · 1 评论 -
分享一次部署经历,docker+dubbo+zookeeper
docker 搭建 zookeeper 集群安装:拉取指定版本镜像docker pull zookeeper:3.4创建运行在后台的zookeeper容器docker run -d --name=zk-1 zookeeper:3.4 docker run -d --name=zk-2 zookeeper:3.4 docker run -d --name=zk-3 zookeeper:3.4 进入容器docker exec -it zk-1 /bin/bash退出容器exit查看原创 2021-02-09 00:41:07 · 519 阅读 · 0 评论 -
java 抽象工厂模式
public abstract class AbstractProductA { // 公共方法 public void shareMethod(){} // 相同方法,不同实现 public abstract void doSomething();}public abstract class AbstractProductB { // 公共方法 public void shareMethod(){} // 相同方法,不同实现 public原创 2021-01-19 16:56:26 · 122 阅读 · 0 评论 -
java多工厂模式
@FunctionalInterfacepublic interface App { void say();}public interface ClsApp extends App { @Override void say();}public interface UwpApp extends App { @Override void say();}public interface WebApp extends App {}public class原创 2021-01-19 16:50:50 · 204 阅读 · 0 评论 -
java简单工厂模式
package com.kongjs.design_pattern.factory_pattern.simple_factory_pattern;/** * 2021 一月 星期一 20 :17 * Administrator **/public class AppFactory { /* * 简单工厂模式 * */ public static <T extends App> T createApp(Class<T> c) {原创 2021-01-19 16:43:28 · 80 阅读 · 0 评论 -
java 单例模式
package com.kongjs.design_pattern.singleton_pattern;/** * 2021 一月 星期一 19:35 * Administrator **/public class App { /* * 单例模式 * 饿汉 * 线程安全 * */ public static class App1 { private static final App1 ourInstance = new Ap原创 2021-01-19 16:40:49 · 89 阅读 · 0 评论 -
Spring IOC容器
了解spring框架能够理解什么是耦合和解耦能够理解什么是控制反转能够使用spring实例化对象能够使用spring配置依赖注入了解ApplicationContext和BeanFactory的关系理解多配置文件加载一、Spring框架1、spring介绍官网地址:https://spring.io[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljcASaBf-1610620864515)(img/image-2020113..原创 2021-01-14 18:42:09 · 108 阅读 · 0 评论 -
Java 验证码生成,随机颜色字体
验证码生成工具类package com.kongjs.utils;import java.awt.*;import java.awt.image.BufferedImage;import java.util.Random;public class YanCode { private static int width; private static int height; private static int codeLen; private int getR原创 2020-12-29 21:51:02 · 394 阅读 · 0 评论 -
maven配置
环境变量setx MAVEN_HOME = D:\mavensetx PATH = %MAVEN%\binMaven的JVM的参数setx MAVEN_OPT = -Xms256m -Xmx512mmaven 日志1,conf/logging/simplelogger.properties2,MAVEN_OPTS=-Dorg.slf4j.simpleLogger.showThreadName=true mvn 更多settings.xml 文件,一般配置<?xml versi原创 2020-12-21 10:43:42 · 360 阅读 · 0 评论 -
Maven学习笔迹
Maven需要了解的Maven是什么?Maven是一个项目管理工具,它包含了一个项 目对象模型 (Project ObjectModel),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(DependencyManagement System),和用来运行定义在 生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你 用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来原创 2020-12-21 02:48:16 · 285 阅读 · 0 评论 -
JVM常见几种参数
最大堆内存与最大非堆内存的和绝对不能够超出操作系统的可用内存。1、-Xms :表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配。2、-Xmx: 表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小,从而提高性能。一般来讲对于堆区的内存分配只需要对上述两个参数进原创 2020-12-18 13:23:37 · 659 阅读 · 0 评论 -
服务器jre环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_201export JRE_HOME=/usr/local/jdk1.8.0_201/jreexport CLASSPATH=$JRE_HOME/lib/rt.jar:$JRE_HOME/lib/extexport PATH=$PATH:$JRE_HOME/binsource /etc/profile原创 2020-12-17 17:41:29 · 178 阅读 · 0 评论 -
Web核心
Servlet生命周期?创建 请求第一次到达服务器,服务器会根据地址找到servlet完成对象的创建,立刻调用init方法,执行service作用 每次发起请求,都会执行service方法。销毁 服务器关闭或项目移除,servlet是个单例对象。Servlet是什么?服务器端的小程序,可以处理请求和响应!web在里面有几个域对象,分别是什么,生命周期又是什么样子。常用三个,总共4个。1,page 域 当前页面有效,访问页面创建,关闭页面销毁。2,request 域 请求发起创建,响应原创 2020-12-17 15:30:33 · 409 阅读 · 0 评论 -
过滤器Filter
public interface Filter过滤器是对请求到资源(Servlet 或静态内容)或来自资源的响应或两者执行过滤任务的对象。过滤器在方法中执行过滤。每个过滤器都有权访问一个 FilterConfig 对象,从该对象可以获取其初始化参数,并可对 ServletContext 的引用。xml配置 <filter> <filter-name>one</filter-name> <filter-class>c原创 2020-12-17 09:57:48 · 207 阅读 · 1 评论 -
JSP表达式语言(EL)简化获取域中数据
${表达式}${requestScope}${sessionScope}${pageContext}${applicationScope}<% String str = "Hello"; request.setAttribute(str, str);%>${Hello}<% int[] arr = {1, 2, 3, 4, 5};%><%-- ${数组名[索引]}--%>${arr[1]}${arr[3]}<%原创 2020-12-16 14:37:38 · 131 阅读 · 0 评论 -
Jsp基础
jsp 也是servlet ,就是拼接HTML的servletpublic final class _01_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent, org.apache.jasper.runtime.JspSourceImports继承了HttpServletjava.lang.Obje原创 2020-12-16 11:09:24 · 97 阅读 · 0 评论 -
QueryRunner常用方法
maven依赖:<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils --><dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.6</version></dep原创 2020-12-11 19:47:21 · 5404 阅读 · 5 评论 -
类加载
类加载过程虚拟机只加载程序执行时所需要的的类文件。JVM不是一开始就把所有的类都加载进内存中,而是只有第一次遇到某个需要运行的类时才会加载,且只加载一次。类加载的过程主要分为三个部分:加载Java 将字节码数据从不同的数据源读取到 JVM 中,并映射为 JVM 认可的数据结构(Class 对象),这里的数据源可能是各种各样的形态,比如 jar 文件,class 文件,甚至是网络数据源等链接类定义信息转入 JVM 运行的过程中初始化执行类初始化的代码逻辑,使用双亲委派机原创 2020-12-11 08:41:45 · 180 阅读 · 3 评论 -
java注解
注解是编译器·计算而来的,所有元素值必须是编译器常量注解是通过注解接口来定义的:modifers @interface AnnotationName{ elementDeclartion1 elementDeclartion2 . . .}每一个又可以是以下形式 elementDeclartion1type elementName();type elementName() default value;所有接口都隐式扩展自java.lang.annotation.Annotation原创 2020-12-10 21:28:09 · 104 阅读 · 0 评论 -
Servlet类
ServletServlet是在Web服务器中运行的小型Java程序。Servlet通常通过HTTP(超文本传输协议)接收和响应来自Web客户端的请求。编写可扩展的通用servlet javax.servlet.GenericServlet 或 javax.servlet.http.HttpServlet 。生命周期收到HTTP请求构造Servlet,然后使用 init()方法初始化。响应请求,调用 service()方法响应处理。退出服务,调用destroy()方法销毁Servlet对原创 2020-12-10 19:21:01 · 263 阅读 · 0 评论 -
Java虚拟机
JVM (Java Virtual Machine) 是用于运行java字节码的虚拟机。类加载子系统(Class Loader SubSystem)运行时数据区(Runtime Data Area)执行行引擎本地接口库(Native Interface Library)原创 2020-12-05 19:27:07 · 81 阅读 · 0 评论 -
java中sleep和wait的区别?
package com.company;public class Test { public static void main(String[] args) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Thread thread = new原创 2020-12-05 18:17:16 · 145 阅读 · 0 评论 -
JDK8中Object类的registerNatives方法
本地方法语法JNIEXPORT 返回值 JNICALLJava_包名_类名_方法名(JNIEnv *env, jclass cls){}// 本地方法注册 把object类除了getClass()方法以外加载进来// 运行时加载进JVM,registerNatives方法就会被调用执行了private static native void registerNatives(); static { registerNatives(); }static JNINa原创 2020-12-05 16:41:39 · 430 阅读 · 0 评论 -
java使用本地方法加载dll,打印Hello Native World!
1,创建java文件class HelloNative{ public static native void hello();}2,javac -h . HelloNative.java生成HelloNative.h文件/* DO NOT EDIT THIS FILE - it is machine generated */#include "jni.h"/* Header for class HelloNative */#ifndef _Included_HelloNative原创 2020-12-05 16:12:04 · 343 阅读 · 2 评论 -
Java多线程创建的几种方式
public class Run implements Runnable{ @Override public void run() { String threadName = Thread.currentThread().getName(); System.out.println("当前线程 "+threadName); } public static void main(String[] args) { new Thread原创 2020-11-17 18:40:06 · 360 阅读 · 2 评论 -
HashMap源码解析
HashMap特点 :基于键的HashCode值唯一 , 键不可以重复元素无序 , 按照键的哈希值存放key value 允许为空非线程安全原理 :jdk1.7 数组+链表jdk1.8 数组+链表+红黑树// 构造方法// 构造一个空 HashMap使用默认初始容量(16)和默认负载系数(0.75)。 public HashMap() {this.loadFactor = DEFAULT_LOAD_FACTOR;}// 构造一个空 HashMap指定初始容量和默认负载系数(原创 2020-11-13 20:03:16 · 78 阅读 · 0 评论 -
List与Set 接口对比源码图
原创 2020-11-13 17:30:19 · 103 阅读 · 0 评论 -
java 集合 必读源码
Collection概念 - 容器有序集合List是有序的Collection 实现类ArrayList Vector LinkedList 外部做同步操作 List list = Collections.synchronizedList(new LinkedList(...));ArrayList基于数组,在数组中搜索和读取数据是很快的。因此 ArrayList 获取数据的时间复杂度是O(1);但是添加、删除时该元素后面的所有元素都要移动,所以添加/删除数据效率不高;另外其实原创 2020-11-13 17:27:17 · 565 阅读 · 0 评论 -
java 常用api
System类 System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length); // 源 @HotSpotIntrinsicCandidate public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); Object src : 原数组 int srcPos原创 2020-11-13 17:24:55 · 81 阅读 · 0 评论