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

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

妹学 Java 第 35 讲:intern

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

42510

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

29240

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

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

29530

Java基础Java基础语法

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

51220

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

26830

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

28930

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;

52120

Java基础

严格区分大小写、不能是Java关键字和保留字。 1.关键字 关键字:Java中的关键字是对编译器有特殊意义的词。...比如class是用来定义类的关键字,编译器遇到class就知道这是定义了一个类 保留字:保留字是Java预留的关键字,虽然现在还没有作为关键字,但是以后升级版本中会成为关键字(包括:goto、const...尽量简单,做到见名知意:比如age、stuName Java变量名没有长度限制。 ②.类名命名规则 满足Pascal(帕斯卡)命名法规范:组成类名的首字母总是要大写HelloImooc 3....真 ==>假 \ 假 ==>真 7.条件运算符 Java中的条件运算符是三目运算符。(++是单目运算符、+ - * /是双目运算符。) 语法:布尔表达式?...Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合; 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 1.方法命名规范 1.始终遵循驼峰命名法。

1.1K10

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持有了这个对象的存储地址的引用。

80100

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券