
java基础
All is well!8023
当足够优秀才能过上想要的生活!
码代码,提升技术,升职加薪!奋斗吧,打工人!
展开
-
Long类型比较不要使用==,要用.equals()
源码中显示,Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间的值,一共256个元素。如果值在[-128, 127]之间,会放在缓存里面,而超过这个范围就要new一个新的对象,也就是说==不能判断对象是否相等。当然,如果值是在[-128, 127]之间的话是测不出来什么问题的。解决方案:使用 .longValue() 或者..equals()进行比较。————————————————版权声明:本文为优快云博主「你是人间五月天」的原创文章,遵循CC 4.0 BY原创 2021-06-15 17:06:47 · 1640 阅读 · 1 评论 -
java中split()特殊符号“.“ “|“ “*“ “\“ “]“
关于点的问题是用string.split("[.]") 解决。关于竖线的问题用 string.split("\\|")解决。关于星号的问题用 string.split("\\*")解决。关于斜线的问题用 sring.split("\\\\")解决。关于中括号的问题用 sring.split("\\[\\]")解决。...原创 2021-05-06 15:22:24 · 151 阅读 · 0 评论 -
Java获取当前类名的两种方法
Java获取当前类名的两种方法适用于非静态方法:this.getClass().getName()适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName()原创 2021-04-27 09:14:24 · 246 阅读 · 0 评论 -
递归调用--(数组1,2,3,列出所有可能的组合)
import java.util.Arrays;import java.util.LinkedList;import java.util.List;public class TestA { static boolean b;//默认值false /** * @Title: main * @Description: 1,2,3,列出所有可能的组合 * @param args void * @author: zs * @date: 2021-03-11 10:27 ...原创 2021-03-11 10:33:42 · 329 阅读 · 0 评论 -
Collections.synchronizedList
ArrayList是非线程安全的,在多线程的情况下,向list插入数据的时候,可能会造成数据丢失的情况.并且一个线程在遍历List,另一个线程修改List,会报ConcurrentModificationException(并发修改异常)错误.Vector是一个线程安全的List,但是它的线程安全实现方式是对所有操作都加上了synchronized关键字,这种方式严重影响效率.所以并不推荐使用Vector.Java 中 ArrayList 和 LinkedList 都不是线程安全的,但可以通过 java原创 2021-03-05 14:51:03 · 217 阅读 · 0 评论 -
Java中short s=1;s=s+1;short s=1;s+=1;有什么区别?
short s = 1; s = s + 1; #这个编译一定是不通过的,会提示损失精度。short s = 1; s += 1; #这个编译反而可以通过。隐式类型转换可以由小到大自动转,即byte →short →int →long,如果反过来会损失精度,必须进行显式类型转换。s+=1的意思与s=s+1不同:s=s+1这句话先执行s+1,然后把结果赋值给s,因为1是int类型,所以s+1的值就成了int型,这叫自动类型提升。编译器自动进行了隐式类型转换,所以将一个int类型的值赋给了sh.原创 2021-02-26 16:27:53 · 2146 阅读 · 0 评论 -
java 之 Collection接口和Map接口的区别
一、Collection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。JavaSDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。Collection接口的接口 对象的集合(单列集合)├——-List接口:元素按进入先后有序保存,可重复│—..原创 2021-02-02 11:44:14 · 1340 阅读 · 0 评论 -
面试题整理(答案后期补上)
一、java基础1.1请你说明String和StringBuffer的区别1.2请你说明一下int和Integer有什么区别1.3数组(Array)和列表(ArrayList)的区别?什么时候应该使用Array而不是ArrayList?1.4什么是值传递和引用传递?1.5Java支持的数据类型有哪些?什么是自动拆装箱?1.6为什么会出现4.0-3.6=0.40000001这种现象?1.7java8的新特性吗,请简单介绍一下1.8你说明符号“==”比...原创 2021-01-28 20:16:12 · 158 阅读 · 0 评论 -
理解Java中的引用传递和值传递
package mycode;public class Test { /* 在方法中形参地址改变不会影响到实参地址; */ public static void main(String[] args) { StringBuffer sb1 = new StringBuffer("Hello "); System.out.println("Before change, sb1 = " + sb1); System.out.println("...原创 2021-01-27 12:39:33 · 114 阅读 · 0 评论 -
java文件读写--工具方法
package util;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import org.sprin.原创 2021-01-25 12:44:53 · 160 阅读 · 0 评论 -
java开发笔记(20210112)
1、异步方法和调用方法一定要写在不同的类中 ,如果写在一个类中,是没有效果的!原因:spring对@Transactional注解时也有类似问题,spring扫描时具有@Transactional注解方法的类时,是生成一个代理类,由代理类去开启关闭事务,而在同一个类中,方法调用是在类体内执行的,spring无法截获这个方法调用。2、非web项目启动不占用端口 springboot项目引用spring-web 不占用端口spring.main.web-application-type=none原创 2021-01-12 21:54:54 · 208 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String 。对String频繁进行改变时,建议不要使用 +,这样会影响效率并且浪费内存。StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)当对字符串进行修改的时候,特别是字符串对象经常改变的情况原创 2021-01-12 21:17:47 · 86 阅读 · 0 评论 -
java反射初识
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。我们知道反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,包括包括其modifiers(修饰符),fields(属性),methods(方法)等,并可于运行时改变fields内容或调用methods。那么我们便可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度;还有动态代理的实现等等;但是需要注意的是原创 2021-01-12 21:09:47 · 96 阅读 · 1 评论 -
Java中基本数据类型占几个字节多少位
Java中基本数据类型占几个字节多少位1.字节:byte:用来计量存储容量的一种计量单位;位:bit2.一个字节等于8位 1byte = 8bitchar占用的是2个字节 16位,所以一个char类型的可以存储一个汉字。整型:byte:1个字节 8位 -128~127short :2个字节 16位 (-2^15~2^15-1)int :4个字节 32位 (-2^31~2^31-1)long:8个字节 64位 (-2^63~2^63-1)浮点型:float:4个字节 .原创 2020-11-23 22:21:15 · 1704 阅读 · 0 评论 -
静态代码块与继承
/*子父类中的构造方法的特点 1. 在子类构造对象时,发现访问子类构造方法时,父类也运行了.为什么呢? 答:因为,在子类构造方法中第一行有一个默认的隐式语句:super(); 子类的实例化过程:子类中所有的构造方法默认都会访问父类中的空参的构造方法. 2.为什么子类实例化的时候要访问父类中的构造方法呢? 答:因为,在子类继...原创 2019-03-04 15:30:03 · 929 阅读 · 0 评论 -
String 比较 ==和equals方法的区别
String是引用类型,所以用==的话比较的是String的内存引用地址,并不是比较的值,而equals方法比较的是值,所以判断一个字符串是否相等要用equals方法,而判断是否为null的话,null是值内存为空,所以要用==。关于null和“”的区别,null为内存为空,“”为内容为空。值传递:方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内...原创 2018-11-26 16:23:17 · 280 阅读 · 0 评论