Java基础
文章平均质量分 62
关于Java基础的学习
橙橙爱学习
这个作者很懒,什么都没留下…
展开
-
集合——List
get(i)==null : o.equals(get(i)))条件的最低索引i的元素时才会返回true。在Collection中,List集合是有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素。⑨.remove(int index) 移除列表中指定位置的元素,并返回被删元素,删除位置后面的元素(如果有)向前移动。⑤.set(int i, Object element) 使用元素element替换索引i位置的元素,并返回替换元素。原创 2023-03-14 21:09:48 · 58 阅读 · 0 评论 -
各种编码中字母和汉字分别占多少字节
1. ASCII码:上个世纪60年代,美国制定了一套字符编码(使用一个字),对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了128个字符的编码,只占用了一个字节的后面七位,最前面的1位统一规定为0。特别提示:一个字节可以表示256个字符,ASCII码只用了128个字符2.看一个完整的ASCII码表(可以自行百度)3.缺点:不能表示所有字符。1.Unicode的好处:一种编码,将世界上所有的符号都纳入其中。原创 2023-04-11 15:38:50 · 2402 阅读 · 0 评论 -
Java中双冒号: :的作用
双冒号运算操作符是类方法的句柄,lambda表达式的一种简写二、如何理解双冒号(::)运算符在Java 8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性。它提供了一种执行方法的方法,为此,方法引用需要由兼容的函数式接口组成的目标类型上下文。使用lambda表达式会创建匿名函数, 但有时候需要使用一个lambda表达式只调用一个已经存在的方法(不做其它), 所以这才有了方法引用!类型引用语法案例引用静态方法类名::静态方法名Integer::parseI原创 2023-03-16 12:24:32 · 2904 阅读 · 0 评论 -
Set集合(概述+使用方法)
set接口是Collection的子接口,不提供额外的方法,但在使用规范比Collection更加严格原创 2023-03-15 19:50:20 · 1465 阅读 · 0 评论 -
详解Map集合(重点HashMap)
HashMap 数据结构为数组+链表中增加了红黑树,其中:链表的节点存储的是一个 Entry 对象,每个Entry 对象存储四个属性(hash,key,value,next)如图所示。原创 2023-03-22 18:05:07 · 961 阅读 · 0 评论 -
阿里巴巴代码规范【强制】
不允许使用未经预先定义的常量在 long 或者 Long 赋值时,数值后使用大写字母 L,不能是小写字母 l,小写容易跟数字混淆,造成误解。正例反例。原创 2023-03-03 23:14:09 · 748 阅读 · 0 评论 -
详解相对路径与绝对路径
相对路径:从当前目录开始定位,形成的一个路径绝对路径:从顶级目录开始定位,形成的路径示例:存在如下图所示目录结构: 需求:从abc\test100访问hello.txt使用相对路径: ..\..\abc2\test200\hello.txt使用绝对路径:d:abc2\test200\hello.txt原创 2023-04-10 16:37:33 · 37 阅读 · 0 评论 -
Java类型转换
介绍:当Java在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。数据类型安精度(容量)大小排序为看两个案例。原创 2023-04-12 20:28:44 · 36 阅读 · 0 评论 -
一些实用异常处理
原因:这样的处理方式还不如不捕获异常,因为被生吞掉的异常一旦导致 Bug,就很难在程序中找到蛛丝马迹,使得 Bug 排查工作难上加难。通常情况下,生吞异常的原因,可能是不希望自己的方法抛出受检异常,只是为了 把异常“处理掉”而捕获并生吞异常,也可能是想当然地认为异常并不重要或不可能产生。对于无法处理的系统异常,以 Error 级别的日志记录异常和上下文信息(比如 URL、参数、用户 ID)后,转换为普适的“服务器忙, 请稍后再试”异常信息,同样以 API 包装体返回给调用方。finally 中的异常处理。原创 2023-05-31 10:23:45 · 48 阅读 · 0 评论 -
Java枚举类的基本使用
在某些情况,一个类的对象是固定的,例如一年有12个月,一年有4个季节 ,在Java中这些类被称为枚举类。原创 2023-04-16 16:15:22 · 798 阅读 · 0 评论 -
Java保留两位小数方法
该方式是是使用String的format()方法来实现的,该方法的作用就是规范数据的格式,第一个参数传入一个字符串来表示输出的数据格式,如保留两位小数就使用“%.2f”,第二个参数是要进行格式化的数据。DecimalFormat类主要就是用于格式化十进制数据的,这个类是NumberFormat 的一个具体子类,操作和使用起来都比较方便。在使用的时候需要实例化这个类,构造函数中传入数据的格式类型。原创 2023-04-19 23:02:08 · 3820 阅读 · 0 评论 -
Java注解、元注解(方便看懂源码)
什么是元注解:元注解就是解释注解的注解,它注解的对象是我们前面介绍的注解,如:@Override、@Deprecated 、@SuppressWarnings四种元注解:▷ Retention:指定注解的作用范围,三种 SOURCE,CLASS,RUNTIME▷ Target:指定注解可以在哪些地方使用▷ Documented :指定该注解是否会在 javadoc 体现▷ Inherited:子类会继承父类注解注解的注意事项:▷ 注解仅存在于源码中,在class字节码文件中不包含。原创 2023-04-16 17:25:23 · 298 阅读 · 0 评论 -
什么是cookie
Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。一种是浏览器会将Cookie保存在内存中,还有一种是保存在客户端。原创 2023-06-27 23:07:16 · 713 阅读 · 0 评论 -
开发中如何选择集合实现类
jdk7可能出现链表过长导致效率低的情况,因为我们在8中引入了红黑树,当链表长度 大于8,数组长度大于64,这条链表就会开始树化)无序:HashSet(底层是HashMap,维护了一个哈希表,即(数组+链表+红黑树)排序:TreeSet(使用有参构造器,传入匿名内部类Comparator,重写方法)键无序:HashMap(底层是:哈希表 jdk7(数组+链表) jdk8(数组+链表+红黑树)插入和取出顺序一致:LinkedHashSet(维护(数组+双向链表))原创 2023-06-02 10:21:51 · 45 阅读 · 0 评论 -
什么是Session
用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。Session:在计算机中,尤其是在网络应用中,称为“会话控制Session 对象存储特定用户会话所需的属性及配置信息。原创 2023-06-27 23:15:26 · 263 阅读 · 0 评论 -
如何将 Integer 与 BigDecimal 相乘
需要注意的是,在进行乘法运算时,我们使用了 BigDecimal 的字符串构造函数 new BigDecimal("2.5") 来创建 bigDecimal,这样可以避免浮点数精度问题。如果使用 new BigDecimal(2.5),可能会导致精度丢失。在这个示例中,我们创建了一个 Integer 对象 integer,和一个 BigDecimal 对象 bigDecimal。最后,我们输出了结果 result,它是一个 BigDecimal 对象,其值为 25.0。原创 2023-07-07 22:55:52 · 1757 阅读 · 0 评论 -
Cookie和Session的区别,以及结合使用
关于什么是cookie关于什么是session。原创 2023-06-27 23:26:06 · 100 阅读 · 0 评论 -
Java自动拆装箱以及128陷阱
1.包装对象之间的数值比较不能简单的使用==,除了特殊情况(如Integer的-128~127),其他比较都需要使用equals比较。集合类中都是对象类型,但是我们add(基本数据类型)也不会报错,是因为Java给我们做了自动装箱。包装类与基本数据类型进行比较运算,先将包装类进行拆箱成基本数据类型,然后比较。对两个包装类型进行运算,会将包装类型自动拆箱为基本类型进行。在JavaSE5中,为了减少开发人员的工作,Java提供了自动拆装箱功能。将基本数据类型自动转化为对应的包装类。原创 2023-07-13 22:36:23 · 170 阅读 · 0 评论 -
CompareTo()方法比较大小
【代码】CompareTo()方法比较大小。原创 2023-07-07 22:53:28 · 733 阅读 · 0 评论 -
什么时构造方法,构造方法特点,复制与重载
构造方法可以访问对象的私有属性和方法。总之,构造方法是Java中非常重要的一种方法,它可以帮助我们创建和初始化对象,使得程序更加灵活和易于维护。原创 2023-07-13 22:43:52 · 236 阅读 · 0 评论 -
Java容器有哪些,常见面试题
HashSet 是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成,HashSet 不允许重复的值。对于在 Map 中插入、删除、定位一个元素这类操作,HashMap 是最好的选择,因为相对而言 HashMap 的插入会更快,但如果你要对一个 key 集合进行有序的遍历,那 TreeMap 是更好的选择。原创 2023-07-13 22:56:33 · 265 阅读 · 0 评论 -
Cookie跨域以及Cookie共享问题
不同域名不能共享cookie,例如baidu.html和csdn.html不可以共享二级域名和一级域名之间可以共享cookie原创 2023-06-28 09:21:16 · 1278 阅读 · 0 评论 -
什么是值传递和引用传递
Java只存在值传递!!!原创 2023-07-13 22:46:14 · 29 阅读 · 0 评论 -
Java中的魔法值问题
魔法值,也叫做魔法数值、魔法数字,通常是指在代码编写时莫名出现的数字,无法直接判断数值代表的含义,必须通过联系代码上下文分析才可以明白,严重降低了代码的可读性。除数字之外,代码中作为key值的常量字符串也被认为是魔法值,尽管其表示含义比数值较为清晰,但是仍然会产生不规范问题。//例如...这个4在运行的时候不会报错,但在代码阅读时很难判断他所代表的含义在当前类中使用或在方法内部使用的值, 可以通过定义静态常量的方式来避免魔法值的出现。接口中定义,继承这个接口的实现类都可以使用这些常量。原创 2023-07-07 23:01:54 · 411 阅读 · 0 评论 -
String StringBuilder和StringBuffer的区别
根据实际需求,选择适合的类来处理字符串。如果需要频繁修改字符串且在多线程环境下使用,应该使用StringBuffer。如果需要频繁修改字符串但是在单线程环境下使用,可以使用StringBuilder。如果字符串内容不会发生变化,或者不需要频繁修改字符串,可以使用String。原创 2023-07-17 11:44:55 · 178 阅读 · 0 评论 -
HashMap1.7 和1.8put值的流程
Java 1.8版本在处理哈希冲突和链表长度达到阈值时进行了一些优化,通过引入红黑树提高了查找效率,并在红黑树节点较少时进行节点分裂,避免在多线程环境下导致死锁。这些优化使得在一些场景下,Java 1.8版本的HashMap性能更好。原创 2023-07-17 11:47:28 · 261 阅读 · 0 评论 -
重写equals为什么要重写hashcode
方法时,要保证相等的对象具有相同的哈希值,但相同的哈希值不一定代表相等的对象。方法,确保相等的对象具有相同的哈希值,避免在哈希表中出现错误的行为。这是因为在Java中,hashCode。因此,为了保持一致性,当我们重写。反之,如果哈希值相同,对象的。方法时,通常也需要同时重写。在哈希表中存储对象时,方法时,也需要同时重写。原创 2023-07-17 11:42:48 · 513 阅读 · 0 评论 -
Class.forName()和ClassLoader.getSystemClassLoader().loadClass()区别
Class.forName和ClassLoader.loadClass都可以用来加载类原创 2023-07-27 17:16:35 · 137 阅读 · 0 评论 -
什么是代理,静态代理,jdk代理,Cglib代理讲解及代码
不管是JDK,spring框架,还是日常的开发中几乎可以说无处不在,下面一张简图描述了代理这个模式的业务场景原创 2023-08-05 12:06:42 · 128 阅读 · 0 评论 -
什么是双亲委派机制,为什么要用到这个机制?
双亲委派机制是一种有效的类加载机制,它能够提高类加载的效率,避免类的重复加载和冲突,并保护核心类库的安全性。这也是为什么在Java中要使用双亲委派机制的原因。原创 2023-08-13 17:00:53 · 1029 阅读 · 0 评论