随笔分类 -  Java

摘要:一、抽象类与接口的区别下面比较一下两者的语法区别: 1. 抽象类可以有构造方法,接口中不能有构造方法。 2. 抽象类中可以有普通成员变量,接口中没有普通成员变量 3. 抽象类中可以包含非抽象的普通方法,接口中的可以有非抽象方法,比如deaflut方法 4. 抽象类中的抽象方法的访问类型可以是publ 阅读全文
posted @ 2025-01-05 15:26 luckyjcx 阅读(39) 评论(0) 推荐(0) 编辑
摘要:1.声明为final类的目的: 主要目的就是保证String是不可变(immutable)。不可变就是第二次给一个String 变量赋值的时候,不是在原内存地址上修改数据,而是重新指向一个新对象,新地址。下面看String类源码如何保证是不可变的: public final class String 阅读全文
posted @ 2020-05-29 18:11 luckyjcx 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1. 使用 Iterator 遍历 HashMap EntrySet 2. 使用 Iterator 遍历 HashMap KeySet 3. 使用 For-each 循环迭代 HashMap 4. 使用 Lambda 表达式遍历 HashMap 5. 使用 Stream API 遍历 HashMap 阅读全文
posted @ 2020-04-06 17:01 luckyjcx 阅读(713) 评论(0) 推荐(0) 编辑
摘要:看源码得知: public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in th 阅读全文
posted @ 2020-04-05 19:53 luckyjcx 阅读(146) 评论(0) 推荐(0) 编辑
摘要:何为虚假唤醒: 当一个条件满足时,很多线程都被唤醒了,但是只有其中部分是有用的唤醒,其它的唤醒都是无用功;比如买货:如果商品本来没有货物,突然进了一件商品,这是所有的线程都被唤醒了,但是只能一个人买,所以其他人都是假唤醒,获取不到对象的锁; 避免虚假唤醒: Synchronized版,生产者和消费者 阅读全文
posted @ 2020-04-05 17:24 luckyjcx 阅读(542) 评论(0) 推荐(0) 编辑
摘要:GET和POST的区别主要有以下几个方面: 1、URL可见性: GET:参数URL可见; POST:URL参数不可见; 2、数据传输 GET:通过拼接URL进行传递参数; POST:通过body体传输参数; 3、缓存性: GET:允许缓存; POST:不允许缓存; 4、后退页面的效果: GET:页面 阅读全文
posted @ 2020-03-07 20:47 luckyjcx 阅读(132) 评论(0) 推荐(0) 编辑
摘要:首先说明一下,JDK1.8以后接口可以有默认方法和静态方法以及私有方法。 一、概念: 接口(interface):是抽象类的变体,其中所有的方法都是抽象的且不能有方法体,而且只能定义 static final 成员变量。例如:public static final int MAX_VALUE = 0 阅读全文
posted @ 2020-03-04 17:35 luckyjcx 阅读(1166) 评论(0) 推荐(2) 编辑
摘要:描述:“&&”和“&”都是java中的逻辑运算符,并且它们都表示“逻辑与”即“同真则真,有一假则假”,它们的区别在于“&&”具有短路功能,即如果左边是false,则右边的逻辑表达式不会执行。而“&”没有短路功能,无论左边是false还是true右边都会执行。 例子1: package com.jia 阅读全文
posted @ 2020-03-03 13:23 luckyjcx 阅读(790) 评论(0) 推荐(0) 编辑
摘要:相同点: 二者都可以解决线程安全问题; 不同点: 1.、Synchronized 是Java内置的关键字;Lock是一个Java类; 2、Synchronized 无法判断锁的状态;Lock可以判断是否获取到锁; 3、Synchronized 会自动释放锁;Lock必须要手动释放锁!如果不释放锁,会 阅读全文
posted @ 2020-02-19 19:39 luckyjcx 阅读(259) 评论(0) 推荐(0) 编辑
摘要:对于字符流,一般写入的时候想要马上看到一般需要flush()面试题:close()和flush()的区别?A:close()关闭流对象,但是先刷新一次缓冲区,关闭之后,流对象不可以继续再使用了。B:flush()仅仅是刷新缓冲区(一般写字符时要用,因为字符是先进入的缓冲区),流对象还可以继续使用。 阅读全文
posted @ 2020-02-16 17:31 luckyjcx 阅读(477) 评论(0) 推荐(0) 编辑
摘要:概述 List、Set接口都是继承于Collection主接口,而Map为独立接口 1、List接口下有ArrayList、Vector、LinkedList实现类 2、Set接口下有HashSet、LinkedHashSet、TreeSet实现类 3、Map下有HashMap、LinkedHash 阅读全文
posted @ 2020-02-09 18:04 luckyjcx 阅读(602) 评论(0) 推荐(0) 编辑
摘要:一、继承Thread类+重写run()方法 启动:创建子类对象+对象.start(); 缺点:Java只支持单继承,如果我们的类已经从一个类继承,则无法再继承Thread类。 1 package Thread; 2 3 /** 4 * 模拟龟兔赛跑 5 * 1、创建多线程(方式一):继承 Threa 阅读全文
posted @ 2020-02-06 15:48 luckyjcx 阅读(217) 评论(0) 推荐(0) 编辑
摘要:线程的生命周期及状态转换 在Java中任何对象都有生命周期,线程也不例外,线程的创建即是线程的生命周期的开始,当run() 方法执行完毕, 或者线程抛出一个未捕获的异常 或者 错误的时候, 线程的生命周期就结束了。 Java线程的生命周期分为5个阶段: 新建状态、就绪状态、 运行状态、 阻塞状态、 阅读全文
posted @ 2020-02-06 15:31 luckyjcx 阅读(294) 评论(0) 推荐(0) 编辑
摘要:概念:重写(Override):是存在子父之间的关系,子类里定义的方法与父类里定义的方法具有相同的方法名以及相同的返回值和参数类型 重写规则: 1、方法名形参列表相同; 2、访问权限,子类大于等于父类; 3、返回值类型和声明异常类型子类小于父类; 实例: 1 public class Overrid 阅读全文
posted @ 2020-02-06 14:44 luckyjcx 阅读(366) 评论(0) 推荐(0) 编辑
摘要:相同点:String、StringBuffer、StringBuilder最终底层存储与操作的都是char数组,StringBuffer和StringBuilder都继承了AbstractStringBuilder 不同点:String:char数组是final的,不可变,修改String时实际上是 阅读全文
posted @ 2020-02-06 13:58 luckyjcx 阅读(333) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩