当前位置: 首页 > 科技观察

对不起我的延迟!刚开始用Java11

时间:2023-03-15 15:59:53 科技观察

,有点小纠结。很多初学Java的朋友经常会问:我应该安装哪个版本的JDK?Java8够用吗?Java11有什么改进吗?是Java版本吗?越新越好?……对了,现在官网其实已经放出了Java13版本,可以下载了。不过,目前市面上主流的稳定版本当然是属于Java8和Java11,而且大部分公司的生产环境中仍然使用Java8。所以如果从自学的角度出发,我觉得这两个版本是可以的,其他一些不稳定的版本比如Java9、Java10就不用考虑了。Java11vsJava8Java11相对于Java8确实有局部进化,除了很多内部升级(比如开销和延迟更低的GC,TLS1.3加持等),还有一些面向初学者的语言用法。进化水平。刚好最近在个人小项目上尝试升级使用Java11(公司项目不敢搬也不敢问,只好搬自己的个人项目),所以这篇文章将从以下角度大致体会一下我的经历实际代码编写。使用Java11之后,感觉和Java8相比有一些比较深刻的进化,官方文档中也说的很清楚:https://docs.oracle.com/en/java/javase/11/我为了这个实验安装了Java11版本为11.0.6:下面将要实验验证的一些新特性Java11中并没有引入,其中很多其实在Java9和Java10中引入了,只是在Java11的稳定版中才落户。变量类型推断Java新版本引入了一个全新的类型关键字var。用var定义的变量不需要写具体类型。编译器可以根据=右边的实际赋值自动推断出变量的类型:1.普通的局部变量呢?是不是有一种使用JavaScript这种弱类型语言的错觉?2.在for循环中使用这个地方,看看使用var定义局部变量的优点。如果本例中集合中的元素类型比较复杂,如果是像List>这样的嵌套类型,var的定义就非常简洁明了!3、当然,在某些情况下,一旦一个var类型的变量不能使用,就不可能重新赋不同类型的值。例如:definevar不接受没有初始化的类型变量,例如:另外类的成员变量类型、方法入参类型、返回值类型等不能使用var例如:官方HTTPClient支持是的!现在JDK正式自带了HTTPClient,位于java.net.http包下,支持发送同步和异步HTTP请求。这样,我们以前使用的HTTP请求客户端,比如:OKHttp、HttpClient,现在就可以退休了!发送同步请求:发送异步请求:当然也可以自定义请求头,比如携带JWTToken权限信息请求等:String处理增强新版String类型增加方便的字符如:isBlank(),strip(),repeat()等。字符串处理方法的集合增强主要是增加of(),copyOf()等方法,更方便的创建和复制集合类型。)截断解决方法:文件读写增强1.文件类增强。终于支持直接读文件内容到String,再把String写回文件的功能了。可以使用静态方法writeString()和readString()完成:2.InputStream增强InputStream增加transferTo()方法,直接把数据丢给OutputStream:支持源文件直接运行(666!)比如我写的最简单的HelloWorld程序:并保存为hello.java文件。这时候可以直接使用java命令运行java源文件,直接省略前面的javac中编译源文件的过程:javahello.java怎么样?是不是有点像python源文件的操作?这个信息量有点大。大家可以自己下定决心总结Java11,确实有很多改进,但还是那句话,换句话说,Java8对初学者来说已经足够了,没必要刻意求创新,稳定最重要!