java基础
夏与ta
这个作者很懒,什么都没留下…
展开
-
基本类型自动转换图
如图实线部分不会丢失精度,虚线部分有可能丢失精度。反过来一定会丢失精度原创 2022-01-15 20:11:38 · 92 阅读 · 0 评论 -
java的访问权限
public任何地方都可以访问private只有当前类可以访问protected同包下和子类可用不写//默认的同包下使用子类不同包也不能用原创 2022-01-15 20:07:28 · 71 阅读 · 0 评论 -
重写equals为什么同时必须重写hashcode
有一种数据结构叫做 哈希结构;为了所有的类型对象都可以放在这个结构中。equals和hashcode的关系应该如下:equals比较为true那么hash一定相同。hashcode相同,equals却不一定相同。hashcode判断所放位置,equals判断目前为止上的对象和要放的对象是不是一个对象依照Map来说的话,hashcode就是key,equals来判断value;...原创 2022-01-15 15:50:56 · 45 阅读 · 0 评论 -
字符串不可变
字符串不可变的条件在String源码中有如下代码: /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private int hash; // Default to 0这就导致了每次生成的字符串不可变动。每次变动都是生成新的数组;再来一次深拷贝;...原创 2022-01-15 11:36:09 · 129 阅读 · 0 评论 -
byte相加底层原理
两个byte相加时,相加调用的是 iadd;这个iadd只会相加int类型的数据。所以如上图中Integer c=a+b;时。发生的事不是byte转成Integer;而是int自动装箱;原创 2022-01-15 11:05:40 · 491 阅读 · 0 评论 -
java基础---128陷阱
在java基础中,在-128到127之间。的数是会放在同一个Integer对象里面的。Integer i=new Intrger(125)integer a=new Integer(125);i==a;就是true;所以使用“==”是可以显示true的。但是超过了就会另开一个Integer对象放进去。就只能使用equals判断了。使用“==”一定会报错;Integer i=new Intrger(129)integer a=new Integer(129);i==a;就是fa..原创 2022-01-15 10:52:21 · 92 阅读 · 0 评论 -
java基础---file
file有可能是文件也可能是文件路径。先创建file对象,这个对象可能是输入也可能是输出。mkdir创建一个目录mkdirs创建多层目录。isFile判断是不是一个文件。isDirectory判断是不是目录。listFile返回当前目录下的子文件,返回数组形式。createNewFile创建一个新文件。序列化:序列化的对象一定要实现接口Serializable类里要写private static final long SerialVers...原创 2022-01-12 19:12:33 · 101 阅读 · 0 评论 -
java基础---泛型
泛型就是定义数据结构结构里只能存储什么类型的数据类型。以上自定义泛型原创 2022-01-12 19:10:59 · 104 阅读 · 0 评论 -
java基础---集合
集合,就相当于一种数据结构,他可以是数组,二叉树,链表,哈希表。例如,前端里的应用,按一个按钮,会有什么数据返回,可能会返回10多个数据,每一个都是对象,那么可以把这些结构放进集合里运输,集合本身也是对象。集合不能存基本类型。也不能直接存储对象,而是存储对象地址。集合结构改变,迭代器要重新获取Collection是一个大父类,里面的方法有:add (加元素)clear (清楚所有元素)contains (确认有没有某一种元素)isEmpty (...原创 2022-01-12 19:06:22 · 196 阅读 · 0 评论 -
java基础---io流
上面这个测试,测试了FileInputStream字节输入流。首先要给它一个try和catch。在下面调用关闭close和读取read分别用了try and catch。在输出的时候使用了,数组规定一次取出多少。在while的循环里给(确定取出多少的实际数量给赋值)然后用String把数组里转换成字符串。fil.write方法,在没有文件的时候会创造文件然后写入,有文件的情况下会把原文件清空然后写入。如果在字节输入流的构造方法上写入地址的后面加上“逗号”和“true”则会把写...原创 2022-01-12 18:07:30 · 41 阅读 · 0 评论 -
接口和抽象类的区别
抽象类是半抽象的-接口是完全抽象的-抽象类中有构造方法-接口中没有构造方法-接口和接口之间支持多继承-类和类之间只能单继承-一个类可以同时实现多个接口-一个抽象类只能继承一个类(单继承)-接口中只允许出现常量和抽象方法-以后接口使用的比抽象类多·一般抽象类使用的还是少.接口一般都是对”行为”的抽象-抽象类的主要用法,实现接口后,其他类继承抽象类实现方法。这样子就可以间接实现接口。并且可以选择实现部分接口...原创 2022-01-12 18:06:03 · 78 阅读 · 0 评论 -
java基础---注解
3.5、JDK内置了哪些注解呢?java . lang包下的注释类型:掌握:Deprecated@Deprecated注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择掌握:Override表示一个方法声明打算重写超类中的另一个方法声明。不用掌握:lsuppresswarnings指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。元注解什么是元注解?用来标注"注解类型"的"注解",称为元注解。常原创 2022-01-12 17:43:25 · 58 阅读 · 0 评论 -
方法重载和重写的区别
1.重载:JAVA中允许同一个类文件中出现多个方法名相同但是参数列表不同同名方法,这种现象称为重载要求两个方法名称必须相同,但是参数列表不能相同(个数不同,参数类型不同,参数类型出现顺序)目的,让方法在接收不同参数实现不同功能2.重写:发生在继承过程中,子类对父类方法实现细节进行重新定义1))重写方法时,子类不能降低方法访问权限,可以扩大访问权限2)由private或则final修饰方法都不能被重写3)重写方法时,抛出异常可以是父类方法抛出异常全集,子集,空集4)重写方法返回值原创 2021-11-15 17:33:32 · 471 阅读 · 0 评论 -
javase,反射
获取class的三种方法:1. Class(数据类型) a=Class.forname("写入一个完整类名");2. 写一个类的对象,然后调用对象的getClass方法。String a=new String("hdhdhhdh");Class x=a.getClass;3. 直接用类本身的Class方法。比如:String.Class;如果想要某一个类中的静态代码块中的方法执行,那么可以用一个Class.forName();因为静态代码块是在类加载时执行的,forName可原创 2021-11-14 21:08:06 · 312 阅读 · 0 评论 -
Java.访问控制权限
public公开protected同包下可以访问,子类可以访问缺省同包private私有,当前类中使用。当某个数据只希望子类使用,使用protected修饰类,只能用public和缺省修饰。原创 2021-11-14 21:04:40 · 188 阅读 · 0 评论 -
Java。。。static关键字
当所有对象都有同一个特征时,可以用static,将属性变成静态的。如此之后,访问这个静态属性,用类名.属性。用引用.属性,不会报错,但程序执行和引用没关系。1、语法格式:2、静态代码块在类加技时执行,并且只执行一次。.3、静态代码块在一个类中可以编写多个,并且遵循自上而下的顺序依次执行。4、静态代码块的作用什么?怎么用?用在哪儿?什么时候用?这当然和具体的需求有关,例如项目中要求在类加钱的时刻/时机执行代码完成日志的记录。5.那么这段记录日志的代码就可以编写到静态代码块当中.原创 2021-11-14 21:01:54 · 187 阅读 · 0 评论