Java 核心技术1讲

开篇

Java程序员 1200万
Java设备 不可计数
阿里巴巴、去哪儿、京东、百度、腾讯、美团都使用
云计算领域

初级、中级
扎实的Java
计算科学基础
主流开源框架的使用

Java高级工程师或技术专家
全面考察Java IO/NIO、并发、虚拟机等
对底层源代码的掌握
分布式、安全、性能等

从如何实现 --> 如何更好的实现
是一个思维转变的过程

计算机科学基础+编程语言理解深度
面试不能通过原因:
1.知其然,不知其所以然。 开发了业务应用,但是不知道选择背后的逻辑。(缺乏深度)
需要高水准的设计和实现
2.知识碎片化,不成系统。无法完整的描述自己开发的系统,或者使用的相关技术。(面向搜索引擎编程)
不确定能高效的解决问题,或者设计复杂系统。

少走弯路--->其实写代码的时候感觉颇深 先去找别人是不是有对应的接口,而不是拿起来就开始造。
站在巨人的肩膀上思考。

Java 五大模块
Java基础、Java语言基本特性和机制
Java进阶、围绕并发编程、Java虚拟机等领域展开
Java应用开发扩展:从数据库编程、主流开源框架、分布式开发等
Java安全基础 常见安全问题和处理方法
Java性能基础 工具、方法论、基础实践

目前我处于Java基础都不到的阶段
不敢说我学过Java 0-0


第一讲 谈谈你对Java平台的理解

Compile once, run anywhere

Java是解释执行??

Java最显著两个特性:
1.Write once ,run anywhere
2.GC Garbage Collector

JRE Java Runtime Environment
JDK Java Development Kit
JVM + Java 类库 + 工具

编译:java源代码 -> javac -> 字节码(bytecode)
执行:字节码(bytecode)-> JVM内嵌解释器 -> 机器码

但是常见的JVM Oracle JDK提供的 Hotspot JVM 都提供了JIT编译器(just in time) 动态编译器
JIT能在实时运行的时候将热点代码,编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。

笼统的问题,需要尽量表现出自己的思维深入并系统化,Java知识理解得也比较全面。


java平台的理解

Java语言特性、泛型、lambda等语言特性;基础类库,包括集合、IO/NIO、网络、并发、安全等基础类库。
JVM的基础概念和机制。

比如:Java类加载机制
常用版本JDK8内嵌的Class-Loader例如 Bootstrap、 Application 和 Ex...
类加载大致过程:加载、验证、链接、初始化 《深入理解Java虚拟机》
比如:垃圾收集的基本原理
最常见的垃圾收集器,如 SerialGC、Parallel ...

java平台

java虚拟机启动时,可以指定不同的参数对运行模式进行选择。

总结:第一讲的内容打开了我的新世界,就像Java幼儿园的小朋友一样,遇到的东西都是,什么鬼东西。

第一讲 复盘 念念不忘 必有回响、

从你接触Java开发到现在,你对Java的最直观感觉是什么?

1.面向对象 因为以前学的是C语言,函数式的编程,里面有的大多数是数学的运算,基本的计算技巧。
学了Java之后,他就并不像以前那样了。
他不仅能够完成功能,他还是他。操作+属性
听过对象最好的解释是,封装起来的一组数据和对数据的操作。
2.近期对Java最直观的印象是封装,也可以说分层。
对于复杂的,对于使用者而言不需要过度了解的,还有对于代码美化且不影响理解的。
封装是一个很好的东西。
正确的封装非常利于对代码的理解。
3.多态用的也比较多,多态分为两种,一种是重写,一种是重载。
4.注释的重要性,因为一般系统很复杂,简单的几行注释,言简意赅,就能更好的让别人交接代码。

Compile once ,run anywhere

这句话的理解是有一定缘故的,针对C语言而出现的。主要原因是:C语言会调用较多的系统API,而对于不同的系统Windows、Linux、Mac 系统的API是不一样的。这样就导致了,在Windows平台写的代码,在Linux上跑不了,需要对代码进行修改。
而Java呢,在操作系统的上层造了一层,也就是Java虚拟机。这一层成为了Java语言与操作系统的中间件。而在不同的系统上,这一层就起到了封装复杂性的东西,而且统一入口的作用。
Compile once 是编译,将源代码转化成字节码。
而执行是Java虚拟机将字节码,解释为机器码。
这其中我觉得最奇妙的思想还是封装、中间件的思想。

谈谈对Java平台的理解

所谓的Java平台,是一个很广泛的东西,我就将此理解为Java虚拟机。
就像我们平时将Windows与Linux、Steam与Wegame说为平台。
每个平台上都有他们独有的东西。
而Java平台里面比较重要的概念是
JRE JAVA RUNTIME ENVIRONMENT Java运行时环境
JDK JAVA DEVELOPMENT KIT Java开发工具集
JVM JAVA VIRTUAL MACHINE Java虚拟机
总结Java平台就是一个系统,这里面有运行程序的环境,有进行操作的工具。

ps:刚刚不知道自己按到了什么快捷键,英文和数字输入的时候中间的间距突然加大

百度之后通过移除掉微软拼音再加入到其中解决。

Java是解释执行这句话是否正确?

不正确
Java有两种方式进行执行
一种是所谓的解释执行,因为编译你无论什么时候编译好了,去执行的时候都可以执行,此时你去执行,是一个Java虚拟机对字节码解析成机器码的过程,逐行的去执行。
而常用的Java虚拟机,Oracle JDK提供的Hotspot JVM 都提供了JIT编译器(Just In Time)动态编译器。JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行。
AOT提供了Java源代码直接转为机器码(Java 9)

暂时复盘到这里

本文链接:

https://heyzen.club/index.php/J/24.html
1 + 9 =
快来做第一个评论的人吧~