java的整体生态和学习积累确实是是太大了。95年到现在20多年的积累,甚至牵涉到计算机软硬件的方方面面。我依我之见就怀疑,提主所说的全精通,是指jdk本身和一些必要的数据结构包括广泛框架和面向对象的基本都思想吧。
从11年初到现在,一直在学习java相关的知识。其中也走了不少弯路。按自己的积累,决定提主一个自其实合理不且有肯定会深度的学习路线。大体分下面几个阶段吧。
1.首先应尽可能会的打牢基础的数据结构和简单的算法基础。
这个可以去急速的学习一些简单的小型系统,来满足软件学的兴趣和初期成就感。但,你必须回过身,一遍的平定内乱数据结构基础和简单算法。像这种书就可以。
2.熟练的掌握使用java类库和java第三方工具框架。
去学习不使用java的语法,数次明白java语法设计什么的逻辑。比较熟练掌握jdk第三方库本身,和各种第三方类库工具包和第三方框架的简单的使用。这里去学习的同时,推荐看下《设计模式》,《代码整洁之道》,《spring源码解读》,《spring揭秘》等这一类的书集。
3.理解学jdk第三方库本身的应用源码实现方法和大型网游第三方框架的源码和架构设计。
.例如jdk本身的数据结构二叉树,红黑树,treemap,这些异步包的unsafe,同步阻塞队列,call-future等等包源码,在内线程基础类的实现,各个类库电脑设计的结构和设计模式。学透第三方框架的设计思想,理解学习第三方框架的核心源码。
当然,这里面很可能会比较复杂到其他的事务,分布式协议等,这里并没有发动了攻击。这个过程并非是一朝一夕,肯定是需要大量的时间和技术感悟。不过,《设计模式》,《代码整洁之道》,《spring源码解读与设计详析》,《spring揭秘》等等这一大类书,在这个过程可以不明白大差不差了。
4.明白jdk,jre即jvm原理和利用。
这里我推荐看下王秀娥的《实战java虚拟机》,里面回答都很偏实操。容易上手再理解。
首先,这个可以从jdk随机软件的工具学来入手。
比如说:jstat,jmap,jstack,jps,jdb.......甚至还也有真接是可以窥视运行期间实际中内存数据的hsdb。当然了,作为学习进一步,我们只要解释常用的几个命令,并明白了其属於的意义表就行。毕竟,第三方监控工具,以及jdk本身也可以提供了3个可视化的监控。
比如,明白jvm的运行读取原理,弄懂class文件结构。
这个过程我们可以不自身之前会是用监控工具,理解jvm打开程序的基本原理。可以不可以参考官方各个版本的jvm标准,学习看得懂class文件。于此可以在用如classpy等工具,方便些我们直接写作class文件。也可以试下意见class字节码级别的虚拟轴调试工具。甚至连,是可以接触用用jvm汇编编码工具。
下一步,明白jvm的垃圾回收机制发展历史和各个主流垃圾回收器的工作原理。
这个过程当然相当紧张。垃圾回收器有各种串行,右行,新声代/swap和老年代,包括回收警戒线,large触发条件,各种个样的基本参数和不咋带的超参数,这些g1的h区,zgc等等。。。好在的是,gc并都属于jvm官方规范的一部分。
后再,一起动手做一些jvm的实践和实战,
例如,jvm较常见的故障排查和故障归纳,性能调优,热程序加载,class字节码的动态操作,asm等。
到最后,可以尝试实现程序自己的jvm。(当然这个步骤,对很多同学来说不是可以了)
这里我推荐一下几本书,确实是再次搞懂jvm规范的学习路径。最好是自己实现方法垃圾回收器。
周老师的《深入理解java虚拟机》。
接下来的是《深入嵌入式java虚拟机》和配套源码。这个cldc的jvm源码只有1m多。目前在oracle的官网上,仍然是可以可以下载。是一个设计太精简的jvm基于。
接下来,是可以去阅读《自己动手写java虚拟机》。这本书的jvm实现程序是采用go语言编译程序。其实其中也有很多设计并不是的很比较合理。但基本上都遵循什么了jvm规范。
这会儿就是可以去看一下github上各种jvm的开源代码实现了。有me,scalajvm,javainjava,ajvm,python-jvm,lua,各个版本各个差别的jvm实现方法。
不过,这些基于都仅仅基本原理。
后面推荐你上去看《实战hotspot》豹子书,查哈高级语言虚拟机的圈子。
当然了,垃圾回收的书籍比较比较少,这里肯定推荐一下给你垃圾回收的超经典书《thegarbagecollectioncookbook》。但是对新的垃圾回收算法有兴趣,可以去知乎搜索相关的论文和gc算法开源代码利用的demo。
5.不过,我的建议只是针对java本身。
真正的要都没有达到已经把英语学好java生态,软件工程,计算机网络,大数据基础知识,mahuot,sparklib,分布式搜索架构,各种消息中间件,缓存中间件,数据库,dns/cdn。。。。。这些大都做互联网应用,无法躲避的。
没法见意,通用知识非常熟练,去钻研方向全精通,相关生态所了解。
因此提问是对于java本身。我就不再继续发动说其他具体一点方向了。具体解释的是大的技术方向,并没有其他答主那样的话,具体去讨论语法糖这种级别。只希望对提主有所帮助。
有任何问题,记得关注解除,与我继续讨论。谢谢。
你好,我是小黄,一个java程序员,我来回答我这个问题。
实际jdbc技术连接到oracle的步骤具体万分感谢:
1.注册一个driver驱动器
2.完成任务数据库连接(url,用户名,密码)
3.启动事务,取消自动出现重新提交
4.创建角色一个statement语句发送sql
5.执行sql语句
6.如果没有有结果集就处理结果集
7.直接关闭语句
8.绝对没问题就commit
9.有问题就rollback
10.关了数据库连接
具体详细的代码如下图(我不太会用悟空能回答的编辑器,代码剪切粘贴上来可读性太差,只好贴图片吧)
以上供建议参考,谢谢啊。
假如您感觉对您有帮助,请帮帮忙点个好看,啊,谢谢啦