![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 65
偷偷学习被我发现
记录个人点滴
展开
-
关于window中nginx配置文件路径因/或\访问不到路径问题记录
怎么说了,虽然问题虽小,但因为问的人多了,可能由于大家都没太注意这些细节,所以写成博客记录一下!原创 2023-03-14 17:22:13 · 2289 阅读 · 0 评论 -
热部署和热加载的区别
说实话,本来这篇文章是不打算写的,但是因为今天听到开发的同事在说在开发时不用重启项目采用热部署等等…啥的,因为之前我提到过开发时提升效率多数使用的是热加载,我知道热加载使用过多,存在内存溢出的隐患,但是我觉得这也许是分不清热部署和热加载的区别,所以也许有朝一日我又给忘了(可耻),所以记录的,如果我的理解和记录有误,或者我压根就没说对,请千万指正。热部署:热部署在服务器运行时重新部署项目;热部署直接重新加载整个应用;热部署更多的是在生产环境使用;如果你是使用tomcat或者其他的服务器部署项目时,往原创 2020-05-20 02:13:54 · 584 阅读 · 0 评论 -
序列化、反序列化
因为:Java对象的构造必须先有父对象,才有子对象,反序列化也不例外,所以反序列化时,为了构造父对象,只能调用父类的无参构造函数作为默认的父对象。)是一种将对象以一连串的字节描述的过程,将程序中的对象,放入硬盘(文件)中保存就是序列化,如果不存放在磁盘中,而是一直存放在内存中,会增大内存的消耗;一些敏感的字段,如用户名密码(用户登录时需要对密码进行传输),我们希望对其进行加密,这时,就可以采用本节介绍的方法在客户端对密码进行加密,服务器端进行解密,确保数据传输的安全性。原创 2022-11-25 23:02:46 · 1166 阅读 · 0 评论 -
解决 sun.misc.BASE64Encoder 找不到jar包问题
上面的两个类是jdk自带的两个类,在jdk1.8某个版本之后删去了这两个类,不再提供,所以在编译的时候jdk会提示你,sun公司是建议不这样做的。尤其是更新了JDK版本。使用开发工具idea运行项目时,报错提示sun.misc.BASE64Encoder找不到。把jdk版本降低为1.7,就可以使用了!...原创 2022-07-27 23:06:25 · 11469 阅读 · 0 评论 -
Clob、NClob转类型工具类
感觉还有很大的改进空间,后续补上吧public class ClobToObjectUtils { /** * Clob、nclob类型转Object * map:需转换的值 * wordKey:需转换的key * @param map 转换后对象的map集合 */ public static Map<String, Object> setClobToObject(Map<String, Object> map, L原创 2020-05-30 09:28:38 · 639 阅读 · 0 评论 -
Java 常用工具类整理
记录我在工作中常用的一些工具类,其中具体操作,以及原理,自然是自己去看看源码理解就好了。1.org.apache.commons.lang.StringUtilsisBlank:字符串是否为空 (trim去掉前后缀空格后判断)isEmpty:字符串是否为空 (不trim去掉前后缀并判断)equals:字符串是否相等join:合并数组为单一字符串,可传分隔符split:分割字符串EMPTY:返回空字符串trimToNull:trim去掉前后缀后为空字符串则转换为nullreplace:替换字原创 2020-05-14 01:37:19 · 259 阅读 · 0 评论 -
记录读书一:JAVA的发展史
JAVA的发展史Java发展的时间表。 (版本号 名称 中文名 发布日期)JDK 1.1.4 Sparkler 宝石 1997-09-12 JDK 1.1.5 Pumpkin 南瓜 1997-12-13 JDK 1.1.6 Abigail 阿比盖尔–女子名 1998-04-24 JDK 1.1.7 Brutus 布鲁图–古罗马政治家和将军 1998-09-28 JDK 1.1.8 Chelsea 切尔西–城市名 1999-原创 2020-05-12 13:11:25 · 147 阅读 · 0 评论 -
String字符串的长度
最近回顾了一下String的长度,记录一下, 万一下次忘了方便再次记忆!Java中的String的长度要要分两个阶段去思考:1、编译期:在JDK1.8中,看过String的源码的应该知道,根据public String(char value[], int offset, int count)的定义,count是int类型的,所以,char value[]中最多可以保存Integer.MAX_VALUE个,即2147483647字符。但是实际上却不一样,String s = “”;中,最多可以有655原创 2020-05-12 12:54:21 · 3469 阅读 · 0 评论 -
@transient的作用
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。@transient 就是在给某个javabean上需要添加个属性,但是这个属性你又不希望给存到数据库中去,仅仅是做个临时变量,用一下。不修改已经存在数据库的数据的数据结构。transient的作用1)一旦...原创 2020-03-08 15:25:26 · 1520 阅读 · 1 评论 -
总结一下,Hashtable和HashMap的7个区别
前世今生Hashtable是java一开始发布时就提供的键值映射的数据结构,而HashMap产生于JDK1.2。虽然Hashtable比HashMap出现的早一些,但是现在Hashtable基本上已经被弃用了。而HashMap已经成为应用最为广泛的一种数据类型了。而Hashtable是线程安全的,效率比较低。取而代之的是ConcurrentHashMap。ConcurrentHashMap虽然...原创 2019-11-19 02:29:59 · 202 阅读 · 1 评论 -
Error:java: Compilation failed: internal java compiler error
Error:java: Compilation failed: internal java compiler error最近同事的项目老是报这个错误,但是不影响运行,也就没怎么管去它,主要是太忙了,凡事都有优先级,不影响的情况下就延后了处理了;后来我突然感兴趣装了一个公司封装的eclipse,习惯性的在聚合工程中查看父模块以及一个个子模块的jdk版本,想到了这事,感觉这tm不是一样的吗?可能因...原创 2019-11-19 01:42:15 · 308 阅读 · 1 评论 -
eclipse启动报错 A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be availabl
eclipse启动报错 A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be availabl解决方案:1.环境变量变量名:JAVA_HOME 变量值: C:\Program Files\Java\jdk1.7.0_80变量名:CLASSPATH 变量值: .;%JAVA_HOME%\lib在...原创 2019-11-13 11:02:35 · 1638 阅读 · 1 评论 -
安装JDK8&&配置环境变量
一、下载http://www.oracle.com/technetwork/java/javase/downloads/index.html根据自己电脑选择对应的型号二、安装三、配置环境变量1.打开环境变量配置。计算机→属性→高级系统设置→高级→环境变量,在系统变量中配置。在这里我们需要添加三个环境变量2.配置JAVA_HOME。新建,变量名JAVA_HOME,变...原创 2019-09-23 22:20:40 · 253 阅读 · 0 评论 -
简单总结一下HashMap和Hashtable的7个区别
前世今生Hashtable是java一开始发布时就提供的键值映射的数据结构,而HashMap产生于JDK1.2。虽然Hashtable比HashMap出现的早一些,但是现在Hashtable基本上已经被弃用了。而HashMap已经成为应用最为广泛的一种数据类型了。而Hashtable是线程安全的,效率比较低。取而代之的是ConcurrentHashMap。ConcurrentHashMap虽然...原创 2019-08-23 11:41:02 · 408 阅读 · 1 评论 -
Final和finally、finalize区别
finalfinal可以用来修饰类,方法和变量(成员变量或局部变量)。final修饰的类不能被其他类所继承。final类中所有的成员方法都会隐式的定义为final方法。final修饰的方法不能在其他类中进行重写。若父类中final方法的访问权限为private,将导致子类中不能直接继承该方法,因此,此时可以在子类中定义相同方法名的函数,此时不会与重写final的矛盾,而是在子类中重新地定...原创 2019-08-18 10:58:57 · 134 阅读 · 1 评论 -
fail-fast和fail-safe区别
快速失败和安全失败是对迭代器而言的。快速失败:当在迭代一个集合的时候,如果有另外一个线程在修改这个集合,就会抛出ConcurrentModificationException异常,java.util下都是快速失败。安全失败:在迭代时候会在集合二层做一个拷贝,所以在修改集合上层元素不会影响下层。在java.util.concurrent下都是安全失败。1.fail—fast(快速失败)在用迭...原创 2019-08-24 10:29:25 · 355 阅读 · 1 评论 -
String&&StrinBuiler&&StringBuffer区别以及源码解析
String 和 StringBuffer、StringBuilder 的区别String 和 StringBuffer、StringBuilder 的区别&&源码分析先大概的讲一下他们的区别,再进行一些源码分析可变性String 类中使用 final 关键字字符数组保存字符串, private final char value[],所以 String对象是不可变的。而Str...原创 2019-08-07 14:54:40 · 409 阅读 · 1 评论 -
常使用的String方法
public String() public String(String original) public String(char[] value) public String(char[] value, int offset, int count) public String(byte[] bytes) public String(byte[] bytes, int ...原创 2019-07-15 22:58:53 · 207 阅读 · 0 评论 -
基础知识点(一)
基础知识点(一)一、 面向对象思想的好处1、面向对象也是基于面向过程的编程思想,但是面向对象相比于面向过程更符合我们的思维方式,万物皆对象。2、可以将复杂的问题简单化,大大提高了程序的可读性和可维护性3、面向过程思想中,我们是程序的执行者,面向对象当中,我们是程序的调用者,这样的话也可以方便程序给其他人调用,提高了程序的扩展性面向对象的三大基本特征以及五大基本原则:基本特征:...原创 2019-07-15 21:02:13 · 140 阅读 · 0 评论 -
JVM内存结构之堆、栈、方法区以及直接内存、堆和栈区别
JVM内存结构之堆、栈、方法区以及直接内存、堆和栈区别一、 理解JVM中堆与栈以及方法区堆(heap):FIFO(队列优先,先进先出);二级缓存;*JVM中只有一个堆区被所有线程所共享;对象和数组储存在里面;调用对象速度较慢;生命周期由虚拟机JVM的垃圾回收机制GC制定;由JVM动态分配空间;堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。...原创 2019-07-13 22:35:35 · 1953 阅读 · 1 评论 -
JAVA中拆箱和装箱
浅谈JAVA中拆箱与装箱一. 什么是装箱?什么是拆箱?在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:Integer i = new Integer(10);在栈中储存引用变量;该引用变量指向在堆中储存的对象i;而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这样就可以了:Integer i=1...原创 2019-07-13 22:39:28 · 1253 阅读 · 1 评论 -
面向对象的基本理解
一、面向对象的三大基本特征以及五大原则三大基本特征:1、 封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问;只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现;(对封装的属性不一定要通过get/set方法,其他方法也可以对封装的属性进行操作。当然最好使用get/set方法,比较标准。) 2、 继承:继承就是子类继承...原创 2019-07-13 22:44:02 · 177 阅读 · 0 评论 -
配置环境变量&&OpenJDK和OracleJDK区别
##如何配置环境变量1.配置jdk的基础目录:JAVA_HOME: D:\JDK\jdk1.8.0_161配置jdkd的可执行文件路径Path:D:\JDK\jdk1.8.0_161\bin或者%JAVA_HOME%\bin在cmd里输入javac来测试为什么输入javac了?Javac存在于JDK中,用于编译JAVA源文件.java的,编译成字节码文件.class;...原创 2019-07-15 09:54:34 · 347 阅读 · 0 评论 -
标识符&&注释&&关键字
##标识符的概念Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。简而言之就是给类,接口,方法,变量起名字。##标识符的命名规则1.由字母、数字、下划线(_)和美元符号()组成2.不能以数字开头(不建议下划线以及)组成2.不能以数字开头(不建议下划线_以及)组成2.不能以数字开头(不建议下划线以及开头)3.区分大小写4.不能是Java中的关键字,##标识符的...原创 2019-07-15 10:25:57 · 165 阅读 · 0 评论 -
变量&&常量
变量变量概述变量其实是内存中的一小块区域,使用变量名来访问这块区域。因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。定义变量的三要素:数据类型,变量名,初始化值。***定义变量的格式 ***数据类型 变量名 = 初始化值;定义变量的注意事项1.同一作用域内不能定义重复变量2.变量在使用前一定要给初始值3.建议:(在一行内不要定义多条语句,每一...原创 2019-07-15 12:15:28 · 141 阅读 · 0 评论 -
动态代理原理
动态代理我们都知道Spring的两大核心分别是:IOC控制反转,DI依赖注入、面向切面编程AOP;那么对于AOP来说,它的原理就是动态代理机制,当使用Spring AOP时,可以在XML配置中通过设置:<aop:aspectj-autoproxy proxy-target-class=“true”></aop:aspectj-autoproxy>来进行切换使用哪一种动...原创 2019-07-15 12:27:15 · 276 阅读 · 1 评论 -
注解
注解一、 注解的基本理解注解也叫元数据,用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据,注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。注解可以理解为一种使用相关信息来绑定Java文件元素的方式,一种结构化注释和类元素相互绑定的方法Java中常见的注解@Overr...原创 2019-07-15 12:33:26 · 230 阅读 · 0 评论 -
JVM内存结构和常量池
##1.虚拟机的构成##虚拟结主要由运行时数据区、执行引擎、类加载器三者构成,我们所说的JVM内存模型指的就是运行时数据区。##2.运行时数据区组成和各个区域的作用##运行时数据区可以分为线程共享和线程不共享两部分,其中堆内存和方法区线程共享,本地方法栈、虚拟机栈、程序计数器线程不共享。##2.1.程序计数器##程序计数器(Program Counter Register),也有称作...原创 2019-07-15 15:53:12 · 508 阅读 · 1 评论 -
数据类型&&boolean类型占多少字节
概念Java语言是一门强类型语言,对于每一种数据都定义了明确的数据类型,不同的数据类型在内存中分配了不同的内存空间数据类型的划分数据类型:基本数据类型、简单数据类型、java 内置类型。2.引用类型、复合数据类型、复杂数据类型。##基本类型(八大基本数据类型)##1字节(byte)=8位(bit)整数类型整数类型 | 所占字节数 | 存储范围 byte | 1byte...原创 2019-07-15 17:03:29 · 385 阅读 · 0 评论 -
基本数据类型转换
基本数据类型转换类型转换的方向都是取决于数据的存储范围byte—>short—>int—>long—>float—>double1.自动类型转换将范围小的类型赋值给范围大的类型,不需要强转。例如将小水杯的水倒入到大水杯中例如:int a = 12;double d ;d = a; //能够通过编译不会报错2.强制类型转换将范围大的类型赋...原创 2019-07-15 19:27:25 · 141 阅读 · 0 评论 -
throw和throws的区别
throw和throws的区别抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同一、系统自动抛异常当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常二、throw1、throw是语句抛出一个异常,一般是在代码块的内部,当程序现某种逻辑错误时由程序员主动抛出某种特定类型的异常2、定义在方法体内3、创建的是一个异常对象...原创 2019-07-15 20:53:41 · 575 阅读 · 0 评论 -
Comparable和Comparator的区别
Comparable和Comparator的区别一、ComparableComparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现,compareTo方法也被称为自然比较方法。Comparable是排序接口。若一个类实现了Comparab...原创 2019-07-15 20:55:26 · 384 阅读 · 0 评论 -
重写和重载的区别
重写和重载的区别方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同甚至是参数顺序不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的...原创 2019-07-15 20:56:59 · 204 阅读 · 0 评论 -
成员变量&&全局变量&&局部变量的区别
java三大变量分别是:类变量(静态变量)、实例变量和局部变量(本地变量)。1、作用域不同全局变量:作用整个类中,直接被类调用。成员变量:作用在整个类中(除静态方法不能使用,静态方法没有隐式的this),被对象调用。局部变量:作用在一个局部区域,比如说在一个方法中,方法调用。局部变量作用在它被创建的方法里,从方法的一个花括号{方法体}到结尾的一个花括号里就是它的作用域当成员变量和局部变...原创 2019-07-15 20:57:35 · 1219 阅读 · 1 评论 -
接口和抽象
接口和抽象一、抽象类和抽象方法抽象类:1、使用abstract修饰2、抽象类不能被直接实例化,需要使用向上转型的方式,(多态),父类(抽象类)引用指向子类对象A a=new B();3、抽象类中可以有常量、变量、属性、成员方法还有构造方法和静态方法以及抽象方法。(但是抽象方法只能存在抽象类中)4、抽象类中的抽象方法要在其子类中被实现5、抽象类是一个服务类,其成员变量以及成员方法都是...原创 2019-07-15 20:58:09 · 137 阅读 · 0 评论 -
Iterator和Iterable的区别以及使用
Iterator和Iterable的区别以及使用1、什么是迭代器迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来Iterable,该接口包含一个能够产...原创 2019-07-15 21:00:45 · 690 阅读 · 0 评论 -
JAVA基础部分___JDK和JRE以及JVM
第一部分:一、dos命令*快捷查看电脑ip:Win + R进入cmd;输入ipconfig/all查看IPv4:192.168.0.xxx(首选);基本命令:cd进入目录;d: 直接进入盘符;. 当前目录;…上级;/根目录;md 创建目录;dir查看当前目录下所有文件;rd + 文件夹名:删除文件夹;del+文件名:删除文件;cls:清屏;type nul>.;这里我们在前面创建...原创 2019-07-13 22:31:46 · 348 阅读 · 0 评论