
Java
文章平均质量分 76
Java
geyiwei-suzhou
博客逐渐迁移至 blog.antherd.com
展开
-
jar包中读取资源文件 getResourceAsStream
此种方法可在编辑器中运行读取资源文件,打包成jar包后发布也可以读取到项目中文件将资源文件如xxx.js放到项目的main/resources文件夹中this.getClass().getClassLoader().getResourceAsStream("xxx.js")原创 2021-08-10 18:47:05 · 755 阅读 · 0 评论 -
File获取文件名(去除路径)
// 获取文件名String fileName = file.getOriginalFilename();int unixSep = fileName.lastIndexOf('/');int winSep = fileName.lastIndexOf('\\');int pos = (winSep > unixSep ? winSep : unixSep);if (pos != -1) { fileName = fileName.substring(pos + 1);}...原创 2021-06-08 17:31:35 · 2955 阅读 · 0 评论 -
Java 9&10&11 新特性
视频链接:Java零基础教程JDK 9 的发布经历4次跳票,历经曲折的Java 9终于在2017年9月21日发布从Java 9这个版本开始,Java的计划发布周期是6个月,下一个Java的主版本将于2018年3月发布,命名为 Java 18.3,紧接着再过六个月将发布 Java 18.9这意味着Java的更新从传统的以特性驱动的发布周期,转变为以时间驱动的(6个月为周期)发布模式,并逐步的将Oracle JDK原商业特性进行开源针对企业客户的需求,Oracle将以三年为周期发布长期支持版本(l.原创 2021-04-27 15:15:39 · 467 阅读 · 0 评论 -
JavaSE 笔记【十四】反射
视频链接:Java零基础教程反射机制概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射。正常方式:引入需要的“包类”名称 -->.原创 2021-04-26 10:20:32 · 127 阅读 · 0 评论 -
JavaSE 笔记【十三】网络编程
视频链接:Java零基础教程网络编程目的:直接或间接地通过网络协议与其他计算机实现数据交换,进行通讯两个主要问题:如何准确地定位网络上一台或多台主机;定位主机上的特定的应用找到主机后如何可靠高效的进行数据传输通讯双方地址:IP端口号一定的规则(即:网络通讯协议。有两套参考模型)OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广TCP/IP参考模型(或TCP/IP协议):事实上的国际标准网络通信协议:OSI参考模型TCP/IP参考模型TCP/IP参.原创 2021-04-22 16:36:51 · 142 阅读 · 0 评论 -
JavaSE 笔记【十二】IO流
视频链接:Java零基础教程File类的使用java.io.FIle类:文件或文件目录路径(文件夹)的抽象表示形式,与平台无关File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个FIle对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录File对象可以作为参数传递给流的构造器常用构造器public File(String pathn.原创 2021-04-14 15:19:25 · 176 阅读 · 0 评论 -
JavaSE 笔记【十一】泛型
视频链接:Java零基础教程为什么要有泛型?集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK 1.5 之前只能把元素类型设计为Object,JDK 1.5之后使用泛型解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如果管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection< E>,List< E>,ArrayList< E> 这个< E>.原创 2021-04-09 16:57:43 · 190 阅读 · 0 评论 -
JavaSE 笔记【十】集合
视频链接:Java零基础教程Java集合框架概述一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态地把多个对象的引用放入容器中数组在内存存储方面的特点:数组初始化之后,长度就确定了数组声明的类型,就决定了进行元素初始化时的类型数组在存储数据方面的弊端:数组初始化以后,长度就不可变了,不便于扩展数组中提供的属性和方法少,不便于进行添加、删除、插入等操作,且效.原创 2021-04-09 14:20:45 · 231 阅读 · 0 评论 -
JavaSE 笔记【九】枚举类和注解
视频链接:Java零基础教程枚举类一、枚举类的使用枚举类的理解:类的对象只有有限个,确定的当需要定义一组常量时,强烈建议使用枚举类如果枚举类中只有一个对象,则可以作为单例模式的实现方式枚举类的属性枚举类对象的属性不应该允许被改动,所以应该使用private final修饰枚举类的使用private final修饰的属性应该在构造器中为其赋值若枚举类显示的定义了带参数的构造器,则在列出枚举值时也必须对应的传入参数二、如何定义枚举类jdk 5.0之前,自定义枚举类.原创 2021-04-06 11:08:42 · 305 阅读 · 2 评论 -
JavaSE 笔记【八】Java常用类之比较器、System类、Math类、BigInteger、BigDecimal
视频链接:Java零基础教程Java比较器Java 中的对象,正常情况下,只能进行比较: == 或 != 。不能使用 > 或 < 的。但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中的任何一个:Comparable(自然排序) 或 Comparator(定制排序)java.util.Comparable接口的使用举例:像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个.原创 2021-04-02 14:44:00 · 254 阅读 · 0 评论 -
JavaSE 笔记【七】Java常用类之日期时间API
视频链接:Java零基础教程java.lang.SystemSystem类提供的 public static long currentTimeMillis() 用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差此方法适于计算时间差计算世界时间的主要标准有:UTC(Coordinated Universal Time)GMT(Greenwich Mean Time)CST(Central Standard Time)java.util.Date表示特定的瞬间,精确到.原创 2021-04-02 10:23:31 · 161 阅读 · 0 评论 -
JavaSE 笔记【六】Java常用类之String、StringBuffer、StringBuild
视频链接:Java零基础教程String字符串是常量,用双引号引起来表示String实现了Serializable接口:表示字符串是支持序列化的String实现了Comparable接口:表示String可以比较大小String 是一个final类,代表不可变的字符序列。String 内部定义了数组 final char[] value 用于存储字符串数据,它们的值在创建之后不能更改通过字面量的方式(区别于new)给一个字符串赋值,此时的字符串值申明在字符串常量池(字符串常量池中是不会存储相.原创 2021-03-31 10:34:40 · 239 阅读 · 0 评论 -
JavaSE 笔记【五】多线程
视频链接:Java零基础教程程序、进程、线程程序:一段静态的代码进程:正在运行的一个程序,进程是动态的,进程作为资源分配的单位线程:线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc)一个Java应用程序java.exe,至少有三个线程:main() 主线程、gc() 垃圾回收线程、异常处理线程。当然如果发生异常,会影响主线程。并发与并行并行:多个CPU同时执行多个任务。比如:多个人同时做不同的事并发:一个CPU(采用时间片)同时执行多个任务。比如:秒杀.原创 2021-03-30 11:50:48 · 129 阅读 · 0 评论 -
线程安全的单例模式(Java)
单例模式:保证一个类对象只实例化一个如何实现单例模式:私有构造方法私有化实例对象提供公共静态的获取对象的方法饿汉式饿汉式单例模式是天然的线程安全,在类加载时实例化对象public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { retu原创 2021-03-23 10:54:18 · 880 阅读 · 0 评论 -
JavaSE 笔记【四】异常处理
视频链接:Java零基础教程异常处理Error一般不编写针对性的代码进行处理栈溢出:java.lang.StackOverflowError堆溢出:java.lang.OutOfMemoryErrorException使用针对性的代码进行处理空指针访问试图读取不存在的文件网络连接中断数组下标越界异常处理方式try-catch-finallycatch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面,否则报错。finally中的代码一定会执行,如果fin.原创 2021-03-22 09:58:36 · 124 阅读 · 0 评论 -
JavaSE 笔记【三】面向对象
视频链接:Java零基础教程封装性对象的内存解析堆(Heap):存放对象实例栈(Stack):存储局部变量方法区(Method Area):类信息、常量、静态变量、即时编译器编译后的代码属性与局部变量属性:可以用访问修饰符修饰,有默认初始化值,加载到堆空间中(static属性加载到方法区)局部变量:没有访问修饰符,没有默认初始化值,加载到栈空间中对象数组的内存解析引用类型的变量,只可能存储两类值:null或地址值(含变量的类型)可变个数的形参JavaSE 5.0 中提供了Vara.原创 2021-03-16 14:40:44 · 192 阅读 · 0 评论 -
JavaSE 笔记【二】Java语言概述、基本语法、数组
视频链接:Java零基础教程Java语言概述Java语言特性特点一:面向对象特点二:健壮性特点三:跨平台性单行注释与多行注释、文档注释注释了的内容不参与编译文档注释生成文档:javadoc -d outputPath -author -version javaFileName基本语法cmd启动快捷方式:在文件夹地址栏输入cmd可以直接在此路径打开cmd标识符的命名规范java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用变量的分类基本数据类型整.原创 2021-03-01 17:25:26 · 584 阅读 · 3 评论 -
JavaSE 笔记【一】编程入门
视频链接:Java零基础教程编程入门bit与byte一个0或者一个1存储为一个比特(bit),是计算机中最小的存储单位计算机中最基本的存储单元是字节(byte)。每个字节由8个比特构成计算机的存储能力是以字节和多个字节来衡量。如下:千字节(kilibyte,KB)= 1024B兆字节(megabytebyte,MB)= 1024KB千兆字节(gigabyte,GB)= 1024MB万亿字节(terabyte,TB)= 1024GB其上还有PB、EB、ZB、YB等单位内存CPU.原创 2021-02-23 17:30:41 · 140 阅读 · 0 评论 -
抽象方法错误:com.alibaba.cloud.sentinel.feign.SentinelContractHolder.parseAndValidatateMetadata解决办法
SpringCloud Alibaba Sentinel整合SpringCloud OpenFeign,启动报错FactoryBean threw exception on object creation; nested exception is java.lang.AbstractMethodError: com.alibaba.cloud.sentinel.feign.SentinelContractHolder.parseAndValidatateMetadata(Ljava/lang/Class原创 2021-01-19 10:46:54 · 1884 阅读 · 1 评论 -
Apache和Tomcat修改项目路径配置
Apache conf/httpd.conf 中修改 DocumentRoot 指定的路径Tomcat conf/server.xml 中<Engine>节点下的<Host>节点中加入节点<Context path="" docBase="项目文件夹名" reloadable="true" /> docBase属性值为webapps目..原创 2018-02-22 22:40:25 · 3087 阅读 · 0 评论 -
Centos 服务器java资源占用查看
使用top命令,查找到使用CPU最多的某个进程,记录pid使用Shift + P快捷键可以按CPU的使用率进行排序top再次使用 top 命令,加 - H 参数,查看某个进程中使用CPU最多的某个线程,记录线程的IDtop -Hp $pid使用 printf 函数,将十进制的pid转化为十六进制printf %x $pid使用 jstack 命令,查看 Java 进程的线程数jstack $pid > $pid.log使用 less 命令查看生成的文件,并查找刚才转化的十六.原创 2020-08-27 16:50:07 · 627 阅读 · 0 评论 -
Springboot项目请求tomcat特殊字符拦截最优解决方案
SpringBoot内嵌tomcat版本大于8.0对请求URL做了严格的过滤, RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])java.lang.IllegalArgumentException: Invalid character found in the request target. The vali原创 2020-06-12 11:41:58 · 3059 阅读 · 1 评论