jls8

语言规范里面貌似挺多东西...看下来貌似就是无限的引用其他章节的东西,略跳跃

The null reference can always be assigned or cast to any reference type (§5.2, §5.3,

§5.5)

null可以随便强转...

A class method that is declared synchronized (§8.4.3.6) synchronizes on the

monitor associated with the Class object of the class.

synchronized方法相当于普通方法里面加个synchronized(this.getClass())

The Class String

A String object has a constant (unchanging) value.

String literals (§3.10.5) are references to instances of class String

不变的String,"xxx"文字是String的一个实例

At run time, several reference types with the same binary name may be loaded

simultaneously by different class loaders. These types may or may not represent

the same type declaration. Even if two such types do represent the same type

declaration, they are considered distinct.

不同的classLoader加载的同一个class文件也是被认作不同的,==号,instanceof返回false吧..cast就不用说会报错了..

Object >1 Object[]

Cloneable >1 Object[]

java.io.Serializable >1 Object[]

似乎数组都是可以进行clone,进行序列化的,所以...Cloneable c = new Object[10];

Collections.reverse(List> list)

size < REVERSE_THRESHOLD || list instanceof RandomAccess

这个是看泛型通配符顺路发现的....jdk实现倒转一个集合,如果集合并不是RandomAccess的,那么get需要对调的元素会非常耗费时间,

所以默认定义了个阈值18,超过18并且不能随机访问的进行倒转会直接用迭代器来get需要对调的元素...考虑略充分...

8新增了个ElementType.TYPE_USE,这样的注解可以@C int @A [] @B [] f;注解在[]前..

具体在9.7.4,从4.11当中那段引用过去的...

并且getDeclaredAnnotations这个方法及类似的方法是获取不到的,这个方法只能获取到ElementType = 当前实例类型的注解

比如Field.getDeclaredAnnotations似乎只能获取到ElementType = ElementType.FIELD的注解数量,

其他的可以通过getAnnotatedType进一步操作来获取

A variable of type Object[] can hold a reference to an array of any reference type

Object[]只能放any reference type,不包括primitive type

所以上次谁跟我说的在新的jdk里可以支持Integer[] i = new int[10];..坑..

还发现了effectively final的解释.~匿名内部类引用外部数据只要是effectively final的可以不用将外部数据定义成final

虽然感觉定义不定义没什么意义,具体看看后面会不会提到

第六章讲了些命名的规范,如何让命名有意义~以及一些可见性的东西,好像不是很有看头,主要是外部类私有的东西的内部类可见之类的,然后是像

The fully qualified name of the type "array of array of array of array of String" is

"java.lang.String[][][][]".这样一些定义, Fully Qualified Names and Canonical Names的差别什么的

顺路发现编译器会把new XXX().method()拆成new XXX();method();这样调用如果method()是static的话,

虽然一般不会通过实例调用静态方法

为什么一个静态内部类不能通过new Outer().new Inner()来创建而只能通过new Outer.Inner():

我想大概是因为内部类实例化需要通过隐藏的构造方法传入外部类实例,而静态内部类并没有any lexically enclosing instances,

更不会提供默认的构造方法用来传入enclosing instances.

java jls8_GitHub - scmod/jls8相关推荐

  1. [Core Java® for the Impatient]重载Java2

    2019独角兽企业重金招聘Python工程师标准>>> Chapter 2. Object-Oriented Programming Set(Mutator Methods)方法改变 ...

  2. 下载 Java 学习的权威文档

    JVMS 和 JLS 文档的下载 快速直达: https://docs.oracle.com/javase/8/ --> Java Language and Virtual Machine Sp ...

  3. Java关键字(六)——super

    在 Java关键字(五)--this 中我们说 this 关键字是表示当前对象的引用.而 Java 中的 super 关键字则是表示 父类对象的引用. 我们分析这句话"父类对象的引用&quo ...

  4. Java jdt 编辑_使用JDT转java代码为AST

    maven依赖 org.eclipse.jdt org.eclipse.jdt.core 3.13.0 代码: import org.apache.commons.io.FileUtils; impo ...

  5. java as关键字_Java 关键字专题

    总览 Java 语言中有 50 个关键字,这些关键字不能用作标识符,如下图所示(来自 jls8) 其中关键字 const 和 goto 是预留的,现在无法使用,并且在程序中出现会是编译器产生错误信息. ...

  6. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  7. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  8. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  9. Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常

    kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...

最新文章

  1. 第四百六十八天 how can I 坚持
  2. os.system() 和 os.popen()
  3. 沃丰报告:物联网的未来
  4. 自定义View 实现软键盘实现搜索
  5. python jupyter notebook运行没反应_jupyter notebook运行命令没有反应,右上报错这个
  6. Jsoup实现Iteye自动登录
  7. 【Prince2科普】Prince2七大流程概论
  8. 消息长度_填坑笔记:RocketMQ消息订阅失败问题?
  9. java project保存_java project 导出介绍
  10. JAVA贪吃蛇游戏1.0版本
  11. idea 编译时提示找不到符号
  12. 安卓QQ协议抓包教程
  13. 一文了解BIOS相关名词
  14. 行至青鸟 | 为学习保驾护航的“教学管理”
  15. outlook2016服务器设置不能修改,求助,outlook2016签名也无法编辑和修改,请工程师解决...
  16. docker 网络方案--分析
  17. 服务器导出连接日志文件,Windows文件共享日志审计功能及输出到syslog服务器
  18. 校验时间段是否与已有时间段存在交叉算法
  19. NIST加密标准是什么意思?
  20. ZigBee2节干电池工作半年分析估算

热门文章

  1. SAP 电商云 UI 服务器端渲染的建议架构
  2. 推荐一个 Chrome 浏览历史记录管理的扩展 - History Trends Unlimited
  3. Angular routerLink指令的href属性生成逻辑
  4. fixture.detectChange开始单步调试,如何执行到Directive的ngOnChange钩子
  5. SAP Spartacus Org unit detail实例的单例特性
  6. Angular单元测试的spyOn使用一例
  7. SAP CRM中间件下载出错的错误排查
  8. 一个能极大提高生产率的Chrome新建标签页扩展
  9. 用代码的方式增加servlet mapping定义
  10. jQuery.ready in CRM Fiori Opportunity Application