首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

教妹学 Java 第 26 讲:接口

“哥,我看你朋友圈说《教妹学 Java》专栏收到了第一笔赞赏呀,虽然只有一块钱,但我也替你感到开心。”三妹的脸上洋溢着自信的微笑,仿佛这钱是打给她的一样。 ?...由之前的例子我们就可以得出下面这些结论: 接口中允许定义变量 接口中允许定义抽象方法 接口中允许定义静态方法(Java 8 之后) 接口中允许定义默认方法(Java 8 之后) 除此之外,我们还应该知道...最典型的例子就是 Serializable 接口,在 java.io 包下。...: com.cmower.baeldung.interface1.CloneableTest at java.base/java.lang.Object.clone(Native Method) at....CloneableTest.main(CloneableTest.java:11) 第二,Java 原则上只支持单一继承,但通过接口可以实现多重继承的目的。

26320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    教妹学 Java 第 35 讲:intern

    “哥,你发给我的那篇文章我看了,结果直接把我给看得不想学 Java 了!”三妹气冲冲地说。 “哪一篇啊?”看着三妹面色沉重,我关心地问到。...不过,需要注意的是,Java 7 的时候,字符串常量池从永久代中移动到了堆中,虽然此时永久代还没有完全被移除。Java 8 的时候,永久代被彻底移除。...这个变化也直接影响了 String.intern() 方法在执行时的策略,Java 7 之前,执行 String.intern() 方法的时候,不管对象在堆中是否已经创建,字符串常量池中仍然会创建一个内容完全相同的新对象...;Java 7 之后呢,由于字符串常量池放在了堆中,执行 String.intern() 方法的时候,如果对象在堆中已经创建了,字符串常量池中就不需要再创建新的对象了,而是直接保存堆中对象的引用,也就节省了一部分的内存空间

    45410

    教妹学 Java 第 39 讲:反射

    性能开销:由于反射涉及到动态解析,因此无法执行 Java 虚拟机优化,再加上反射的写法的确要复杂得多,所以性能要比“正射”差很多,在一些性能敏感的程序中应该避免使用反射。 “那反射有哪些好处呢?”...我先对三妹点点头,然后说:“是的,掌握反射的基本使用方法确实不难,但要理解整个反射机制还是需要花一点时间去了解一下 Java 虚拟机的类加载机制的。”...也就是说,java.lang.Class 是所有反射 API 的入口。 而方法的反射调用,最终是由 Method 对象的 invoke() 方法完成的,来看一下源码(JDK 8 环境下)。...如果反射调用的次数比较多,动态实现的效率就会更高,因为本地实现需要经过 Java 到 C/C++ 再到 Java 之间的切换过程,而动态实现不需要;但如果反射调用的次数比较少,反而本地实现更快一些。”...第一篇:深入理解 Java 反射和动态代理 链接:https://dunwu.github.io/javacore/basics/java-reflection.html#_1-%E5%8F%8D%E5%

    31340

    惊艳,草率版「教妹学Java」全面升级了!

    第三件,重新整理《教妹学 Java》专栏,GitHub、码云、在线阅读版的 docsify 和离线版的 PDF 做了全面升级,目前草帅版已经完结。我来重点说说这件事。 先说 GitHub。 ?...我打算至少更新 200 篇,涵盖到 Java 基础的方方面面,比如说 Java 核心知识点、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,并且全部都要是原创,工作量还是挺大的...第三,在线阅读是通过码云 Pages + docsify(我之前详细介绍过,点击链接可查看)生成的(持续性白嫖),在此基础上增加了全局搜索、侧边栏和网站小图标。 ?...记得之前更新《教妹学 Java》的 static 关键字的时候,有个小姐姐留言了下面这段话,现在看完后仍然很感动。 ?...现在有了《教妹学 Java》专栏,希望大家像小姐姐一样,多多三连,多多推荐,最重要的是,多来催催进度,嘿嘿!!!

    32930

    教妹学 Java 第 37 讲:字符串拼接

    “+ 号操作符其实被 Java 在编译的时候重新解释了,换一种说法就是,+ 号操作符是一种语法糖,让字符串的拼接变得更简便了。”...“是的,不过到了 Java 9,情况发生了一些改变,同样的代码,字节码指令完全不同了。”我说。...同样的代码,在 Java 11 的环境下,字节码指令是这样的: Compiled from "Demo.java" public class com.itwanger.thirtyseven.Demo...“好吧,总之就是 Java 9 以后,JDK 用了另外一种方法来动态解释 + 号操作符,具体的实现方式在字节码指令层面已经看不到了,所以我就以 Java 8 来继续讲解吧。”...“再回到《Java 开发手册》上的那段内容:循环体内,拼接字符串最好使用 StringBuilder 的 append() 方法,而不是 + 号操作符。

    31230

    Java基础篇Java基础语法

    前言 Java 以前自学过一写,现在工作了,时间太久有一些知识都遗忘了,今天开始就更新 Java 了,想着把之前的 Java 基础知识捡起来;从最基础的开始,打好 Java 基础,便于以后复习。...Java 关键字是 Java 编程语言中预定义的具有特殊含义的保留字,这些保留字不能被用作标识符或变量名,而是在语法中有特定的用法和限制。...因此,在编写 Java 代码时,程序员需要遵守 Java 关键字的使用规则,以保证程序的正确性和可读性。...逻辑运算,布尔值是逻辑运算的基础,Java 中的逻辑运算符有:与(&&)、或(||)、非(!)等,常用于对布尔值的运算和操作。 方法返回值,可以将布尔值作为方法的返回值,表示某种条件是否满足。...规定:正数的补码与反码、原码一样,称为三码合一; ​ 负数的补码与反码、原码不一样: ​ 负数的原码:把十进制 转为二进制,然后最高位设置为 1 ​ 负数的反码:在原码的基础上

    68920

    教妹学 Java 第 41 讲:异常处理机制

    “Java 语言在一开始就提供了相对完善的异常处理机制,这种机制大大降低了编写可靠程序的门槛,这也是 Java 之所以能够流行的原因之一。” “那导致程序抛出异常的原因有哪些呢?”三妹问。...: / by zero at com.itwanger.s41.Demo.main(Demo.java:8) “你看,三妹,这个原生的异常信息对用户来说,显然是不太容易理解的,但对于我们开发者来说,...Error 的出现,意味着程序出现了严重的问题,而这些问题不应该再交给 Java 的异常处理机制来处理,程序应该直接崩溃掉,比如说 OutOfMemoryError,内存溢出了,这就意味着程序在运行时申请的内存大于系统能够提供的内存...“二哥,针对 checked 异常,我在知乎上看到一个帖子,说 Java 中的 checked 很没有必要,这种异常在编译期要么 try-catch,要么 throws,但又不一定会出现异常,你觉得这样的设计有意义吗...显然,Socket 编程中,肯定是会遇到 IOException 的,假如 IOException 是非检查型异常,就意味着开发者也可以不考虑,直接跳过,交给 Java 虚拟机来处理,但我觉得这样做肯定更不合适

    32030

    一文教懂你如何使用Java的泛型

    一、前言在Java这门编程语言中,泛型这个知识点是我认为新手小白进阶Java语言的难点之一。另外一个难点,我认为是多线程,这个主要难在理解,编码语法不难,所以有点人对这个知识生拉硬套。...回到Java的泛型,对它的理解,对他的编码使用,都有一点难度。不能直接的生硬的去使用,如果不好好理解Java泛型是干什么的话,后面遇到泛型,该懵逼的还是会懵逼。...那么这个时候,本篇文章,会清楚的讲解Java泛型的使用以及理解二、泛型由来在Java1.5以前,我们可以写出这样的代码,并且编译期间不报错package com.banmoon;​import java.util.ArrayList...;import java.util.Date;import java.util.List;​public class Main {​ public static void main(String[...;import java.util.Date;import java.util.List;​public class Main {​ public static void main(String[

    4910

    java 基础

    我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的, 而1.8中放弃了Segment臃肿的设计,取而代之的是采用 Node...a20050114    4     2006032404 5     a20050115    NULL     NULL (所影响的行数为 5 行) 结果说明: left join是以A表的记录为基础的...简介 fail-fast 机制,即快速失败机制,是java集合(Collection)中的一种错误检测机制。...Session Session是另一种记录客户状态的机制,它是在服务端保存的一个数据结构(主要存储的的SessionID和Session内容,同时也包含了很多自定义的内容如:用户基础信息、权限信息、用户机构信息...如: User user = new User("Java技术栈"); 这就是强引用,user持有了这个对象的存储地址的引用。

    83900

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券