首页
学习
活动
专区
工具
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 原则上只支持单一继承,但通过接口可以实现多重继承的目的。

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

    妹学 Java 第 35 讲:intern

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

    45310

    妹学 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%

    31140

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

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

    32830

    Java基础Java基础语法

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

    65620

    妹学 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() 方法,而不是 + 号操作符。

    30830

    妹学 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 虚拟机来处理,但我觉得这样做肯定更不合适

    31330

    java基础

    Java只有一种参数传递方式:那就是按值传递,即Java中传递任何东西都是传值。...在JAVA里,“=”语句不应该被翻译成赋值语句,因为它所执行的确实不是一个赋值的过程,而是一个传地址的过程 在JAVA中,方法的入参对于基本数据类型和字符串常量来说,传递的其实只是这个值本身的一个拷贝而已...".contains(".java")); System.out.println("Hello World.java".endsWith(".java")); System.out.println...处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。...; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;

    55920

    Java基础

    JAVA中,只要给定类的名字,那么就可以通过反射机制来获取类的所有信息。Java 的动态就体现在反射。通过反射我们可以实现动态装配,降低代码的耦合度;动态代理等。...Java中的IO流 java.io包中还有许多其他的流,主要是为了提高性能和使用方便。...27. java序列化 定义:序列化是将 Java 对象转换成字节流的过程。反序列化是将字节流转换成 Java 对象的过程。...Java泛型的实现方法:类型擦除undefinedJava的泛型是伪泛型,因为Java在编译期间,所有的泛型信息都会被擦掉。...31. java类的里面可以再定义一个类吗 java类里面还可以定义一个类,即内部类。java内部类分为: 成员内部类、方法(局部)内部类、静态内部类、匿名内部类 。

    1.3K10

    Java基础

    答:JDK最核心的组成部分是JVM(Java Virtual Machine),它是Java虚拟机,真正运行Java程序的地方。 什么是核心类库?...答:它是Java本身写好的一些程序,给程序员调用的。 Java程序员并不是凭空开始写代码,是要基于核心类库提供的一些基础代码,进行编程。 什么是JRE?...答:JRE(Java Runtime Enviroment),意思是Java的运行环境;它是由JVM和核心类库组成的;如果你不是开发人员,只需要在电脑上安装JRE就可以运行Java程序。...Java开发工具IDEA 想要在IDEA正确的写一个Java程序,必须先认识一下IDEA的管理Java程序的工程结构。...基础语法 2.1 注释 为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释。

    15610

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券