java
一千二
好好学习,欣欣向荣!
展开
-
与null相关
null不可以toString(),会报空指针异常。但是可以(String)强转任何对象都可以安全地.toString()而一般下塑造型的时候才会使用(String)null.equals()会报空指针异常,"".equals()可做出执行。equals()括号内没限制...原创 2020-03-29 23:12:39 · 128 阅读 · 0 评论 -
Project Problem (Java Version Mismatch)
Java compiler level does not match the version of the installed Java project facet.Unknown Faceted Project Problem (Java Version Mismatch) 问题解决!方案一:第一步>> 找到工程下面的.setting 目录的文件 org.eclipse.wst....原创 2020-03-23 18:29:52 · 222 阅读 · 0 评论 -
深入理解Java枚举类型(enum)
理解枚举类型枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举?如何定义枚举?枚举的定义回忆一下下面的程序,这是在没有枚举类型时定义常量常见的方式public class DayDemo { public ...转载 2020-01-08 19:41:00 · 172 阅读 · 1 评论 -
.class文件反编译成为.java文件
安装Java jdk后 看安装目录里有没有jad.exe,没有要下载,一般都有的,配置好Java环境变量。win + R --> cmd 进入命令行窗口,cd+空格+class文件所在路径,然后通过反编译工具 jad 命令实现反编译。在IDEA中的Terminal窗口也可实现反编译常用命令:jad -sjava example.class 在当前目录生成example.ja...原创 2020-01-08 18:34:50 · 5452 阅读 · 0 评论 -
Arrays.asList()
Arrays.asList(T... a) 方法将一个数组转换为一个列表String[] strArray = {"zz","xx","rr"};List<String> list = Arrays.asList(strArray);System.out.println(list); // [zz, xx, rr]list.set(0, "zzz");System.out.p...原创 2020-01-05 23:51:00 · 128 阅读 · 0 评论 -
java.util.Arrays解读
/** * @since 1.2 */public class Arrays { //取消默认构造函数,确保不可实例化。 private Arrays() {} /** * 将一个数组转换为一个列表 */ @SafeVarargs @SuppressWarnings("varargs") public static <T> List<T&...原创 2020-01-05 23:25:55 · 152 阅读 · 0 评论 -
数组拷贝
java数组声明的三种方式①:声明并初始化数据类型[] 数组名 = {值,值,...};String[] strArray = {"zhu","xue","rong"};②:声明后赋值数据类型[] 数组名 = new 数据类型[数组长度];String[] strArray = new String[5];strArray[0] = "zhu";strArray[1] = "xu...原创 2020-01-05 18:40:23 · 115 阅读 · 0 评论 -
Collection.toArray()
Java的Collection.toArray有两个重载方法: 从集合转换成数组Object[] toArray()<T> T[] toArray(T[] a)Object[] toArray()此方法返回的Object[],是不能被强制转换为子元素类型的 public static void main(String[] args) { List<S...原创 2020-01-02 23:03:13 · 557 阅读 · 0 评论 -
StringUtils.tokenizeToStringArray()
spring-core-4.1.6.RELESAE.jar包下StringUtils类中 /** * StringUtils.tokenizeToStringArray(): * 将字符串按照指定的字符转换成String[]数组,如字符串中不包含指定字符,则将整个字符串放进数组。 * 如指定字符有多个,是分别按单个字符来切割的。 * 例子: * 字符串: "zhu-xue...原创 2020-01-02 22:11:04 · 2283 阅读 · 0 评论 -
setLenient(true/false)
日期相关—SimpleDateFormat的setLenient(true/false)-----自动计算日期有时候我们需要判断用户的日期格式是否正确,虽然绝大多数会在前台处理,但是也有需要从文件流读入的情况,如果日期不合格就需要抛异常,这时候就需要禁止SimpleDateFormat的自动计算功能。此时就需要用到setLenient(),这个方法的含义是是否严格解析日期,具体用法如下。p...转载 2019-12-30 20:37:22 · 8430 阅读 · 3 评论 -
SimpleDateFormat
壹:yyyy和YYYY的区别Y表示的是Week year。Week year意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。YYYY在JDK1.6及以前不支持此用法,在JDK1.7及以后版本方以支持public static void main(String[] args) { Calendar calendar = Calendar.getIn...原创 2019-12-30 19:46:57 · 178 阅读 · 0 评论 -
详解tomcat的连接数与线程池
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Request和Response对象传给Engine。当Engine处理完请求后,也会通过Connector将响应返回给客户端。可以说,Servlet容器处理请求,是需要Connector进行调度和控制的,Co...转载 2019-12-17 20:10:35 · 321 阅读 · 0 评论 -
tomcat Executor
性能调优配置在Server.xml中的 Service标签内,Executor 在 Connector标签前 加入如下内容<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="2000" minSpareThreads="100" maxIdleTime="60000" m...原创 2019-12-17 19:12:44 · 1031 阅读 · 0 评论 -
套接字
套接字(socket)套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。传输层实现端到端的通信,因此,每一个传输层连接有两个端点。传输层连接的端点叫做套接字(socket)。所谓套接字,实际上是一个通信端点,每个套接字都...原创 2019-12-16 19:45:59 · 645 阅读 · 0 评论 -
freemarker
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。作用:使用FreeMarker邮件模版来发送邮件、消息推送等一个公共的模板,针对个人信息个性化显示public String getMailHtml(Map ...原创 2019-12-16 14:52:16 · 118 阅读 · 0 评论 -
tomcat Server.xml
<?xml version="1.0" encoding="UTF-8"?><Server port="8005" shutdown="SHUTDOWN"> <!-- Listener监听器 --> <Listener className="org.apache.catalina.startup.VersionLoggerListener" />...原创 2019-12-10 20:14:15 · 73 阅读 · 0 评论 -
tomcat部署项目的3种方式
tomcat的目录层次结构bin 存放启动和关闭tomcat的脚本文件conf 存放tomcat服务器的各种配置文件lib 存放tomcat服务器和所有web应用程序需要访问的jar文件logs 存放tomcat的日志文件temp 存放tomcat运行时产生的临时文件webapps 当发布web应用程序时,通常把web应用程序的目录及文件放到此目录下tomcat 将 JSP生成的...原创 2019-12-10 19:59:16 · 654 阅读 · 0 评论 -
intellij idea 部署javaWeb项目
IDEA Artifacts是一种用于装载项目资产以便于测试,部署,或者分布式软件的解决方案。简单来说就是一个工具包,只要把项目在这里包装就能够放入Tomcat去运行部署点击详见...原创 2019-12-10 19:19:10 · 142 阅读 · 0 评论 -
redis缓存
一、缓存雪崩什么是缓存雪崩?由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。缓存正常从Redis中获取,示意图如下:缓存失效瞬间示意图如下:缓存失效时的雪崩效应对底层系统的冲击非...原创 2019-11-26 20:52:17 · 66 阅读 · 0 评论 -
字节码文件名中包含$
.class文件名中包含$ --> zzz$1.class这是因为在此类中有匿名类。 它们使用ClassName $ InnerClassName此命名约定进行编译。内部类(如果您的类中存在)将被编译,并且类文件将为ClassName $ InnerClassName。 如果是匿名内部类,它将显示为数字。 类的大小(Java代码)不会导致生成多个类。public clas...原创 2019-11-26 19:12:16 · 537 阅读 · 0 评论 -
移位运算符
移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。当操作的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。移位操作符能操作的数只有int类型和long类型。<< 左移运算符左移运算符<< 使指定值的所有位都左移规定的次数规则:丢弃最高位,0补最低位如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取余...原创 2019-11-24 22:31:03 · 352 阅读 · 0 评论 -
String知一
String 被声明为 final,是不可变的,它也不可被继承。在 JDK 8 中,String 是使用 char[] 数组实现的,构造函数用char[] 数组来实例化的时候,只是做一下copy。public final class String implements java.io.Serializable, Comparable<String>, CharSequence {...原创 2019-11-24 16:07:27 · 117 阅读 · 0 评论 -
JSON格式转int/long报错
现象:通过查库(mysql)获取信息,其中有个字段A的值为int类型的5,然后在前端页面,把数据(json)通过ajax请求到后台(在前端页面A的类型为Number),在后台用Map<String, Object>接收json数据,此时A的值变为5.0了,从整型变为了浮点型。此时转换成int会出现类型转换异常。问题:从前端页面传递过来的json串,后台能map接收,再利用map的ge...原创 2019-07-31 19:03:30 · 5678 阅读 · 0 评论 -
Java中8种基本数据类型及其默认值
Java语言中有8种基本数据类型,基本情况汇总如下:Java中8种基本数据类型总结序号数据类型大小/位封装类默认值可表示数据范围1byte(位)8Byte0-128~1272short(短整数)16Short0-32768~327673int(整数)32Integer0-2147483648~21474836474long(长整数)64Lo...原创 2019-11-24 21:26:06 · 478 阅读 · 0 评论