1.官方Feature 269: Convenience Factory Methods for Collections 2.产生背景 要创建一个只读.不可改变的集合,必须构造和分配它,然后添加元素,最后包装成一个不可修改的集合. 比如:     缺点:我们一下写了五行.即:它不能表达为单个表达式. 当然,我们也可以稍微简单点处理:     3.使用说明 Java9因此引入了方便的方法,这使得类似的事情更容易表达.     List firsnamesList= List.of(“Joe”,”B…
Java9 新特性 模块化系统 Java 和相关生态在不断丰富的同时也越来越暴露出一些问题: Java 运行环境的膨胀和臃肿.每次 JVM 启动的时候,至少会 30-60MB 的内存加载,主要原因是 JVM 需要加载 rt.jar,不管其中的类是否被类加载器加载,第一步整个 jar 都会被 JVM 加载到内存当中去,而模块化可以根据模块的需要加载程序运行需要的 class: 当代码库越来越大,创建复杂,盘根错节的"意大利面条式代码"的几率呈指数级的增长.不同版本的类库交叉依赖导致让人头…
Java9中的9个新特性 1. Java 平台级模块系统 2. Linking 3. JShell: 交互式 Java REPL 4. 改进的 Javadoc 5. 集合工厂方法 6. 改进的 Stream API 7. 私有接口方法 8. HTTP/2 9. 多版本兼容 JAR 原文地址:https://www.oschina.net/translate/java-9-new-features Java9中的9个新特性 Java8 发布三年多之后,即将快到2017年7月下一个版本发布的日期了.…
引言: 点击-->java9 新特性 详解 点击-->java8 新特性 详解 正题: 1.局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为null,因为不能判断具体类型,会报异常. @Test public void test1(){ var number = 10; var str = "i like java"; var list = new ArrayList<>(); var map = new Hash…
作者:木九天   <   Java9 新特性 详解  > Java9 新特性 详解 摘要: 1.目录结构 2.repl工具 jShell命令 3.模块化 4.多版本兼容jar包 5.接口方法的改进(在接口中 jdk7 只能声明全名常量和抽象方法 jdk8 添加了静态方法和默认方法 jdk9添加了私有方法) 6.钻石操作符升级 可以有{} 7.异常处理try升级 8.下划线标识符命名的限制 _ 不允许了 9.String底层存储结构的变更(char数组变成byte字节数组) 10.增强了Stre…
java慢的原因 1.  除了少量基本类型用栈存储外,所有对象都使用堆存储.堆的性能低于栈. 2.  很多强制类型转换(cast)或加查,耗用内存大.java运行时对类型检测,如果类型不正确会抛出ClassCastException异常. 3.  自动垃圾回收机制要耗用不少内存. JRE带来的跨平台性: Java 平台程序表示的一个重要部分是字节码序列,它描述了 Java 类中每个方法所执行的操作.字节码使用一个理论上无限大的操作数堆栈来描述计算.这个基于堆栈的程序表示提供了平台无关性,因为它不…
本文参考Roslyn项目中的Issue:#259. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 4. C# 7.0 新特性4: 返回引用 简而言之,[本地方法]就是在方法体内部定义一个方法. 其实咋眼一看,这个新特新并没有什么新意,因为目前大量C#的项目中,都可以使用delegate或基于delegate变形的各种方案(lambda, Fun<*>, Action, Action<*…
上一节介绍了Java8新特性中的Lambda表达式,本小节继续讲解Java8的新特性之二:方法引用.方法引用其实也离不开Lambda表达式. 1.方法引用的使用场景 我们用Lambda表达式来实现匿名方法.但有些情况下,我们用Lambda表达式仅仅是调用一些已经存在的方法,除了调用动作外,没有其他任何多余的动作,在这种情况下,我们倾向于通过方法名来调用它,而Lambda表达式可以帮助我们实现这一要求,它使得Lambda在调用那些已经拥有方法名的方法的代码更简洁.更容易理解.方法引用可以理解为La…
在C#的List集合操作或者数组操作中,有时候我们需要获取到List集合元素中所有的对象的某个属性,然后存放到一个数组集合中,此时就可以使用到List集合以及数组的扩展方法Select方法快速实现获取合中某个属性的所有值,此方法避免了自己写for循环或者foreach遍历的循环语句. 例如,我们有个学生类Student类对象的集合StudentList集合,我们需要获取到所有学生的学号,然后存放在一个字符串List集合中,可使用以下语句. var  studentCodeList=Student…
在C#的List集合的操作中,有时候我们需要根据相关条件快速从List集合中获取到第一个符合条件的实体对象,例如有个全校班级的List集合,我们需要根据班级代码快速从List集合中查找出班级信息.可以使用传统的for或者foreach循环来单独比对查询来实现,其实还可以通过Lambda表达式中的FirstOrDefault方法快速来查找,只需一条语句即可查找出来. 例如有个全校班级信息的List集合List<StudentClass>  classList,需要快速从classList集合中查…