Java学习计划,给自己一个学习线路
动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦!
Java学习计划,给自己一个学习线路。语言是学习成本比较低的,Java作为一种高级语言,其相关语法相对简单,各种类库、框架封装的都相对好,而且相关生态也比较好(百度、google可以快速检索,github也有很多相当优秀的资源),Java类库的使用与C++的STL有很多类似的地方(STL的类库是基于C的template的规则衍生出来的,而Java的类库就基础实现来说我理解也是template,通过将基础功能模版化封装好,这其中涉及到范型等语法)。而Java类较C++而言,C++的虚函数被java中的接口取代;较C而言,C中的结构体也就是Java中的类;所以将Java与大家最常使用和学习的C/C++做类比,会发现Java的语法有很多其他语言的影子,尤其C/C++。
上面建绍了小编对Java的理解,现对其基础语法学习推荐一本书:《Java编程思想》,Java编程神书,适合打基础使用,但是相对较贵,可以搜索电子书进行阅读。java基础语法学习外,要懂的主要几个点:八个基础类型与其对应的类的装包和拆包(主要是对应类的底层数据结构,重点);collection类、map类(collection类要会画它的类图,map类要懂hashmap的底层数据结构,curruenthashmap的底层数据结构,Java1.8之前和之后的不同等等),并且要理解哪几种是线程安全的类(举例:curruenthashmap、vector、hashtable);最基础的类object的三个方法的具体实现,add、hashcode、equal。
高级进阶:
已经有了相对较好的java基础后,需要学习一些java使用较高级的东西,大体有两方面,一个是并发,一个是JVM(java虚拟机),分别推荐两本书吧:《Java并发编程的艺术》、《深入理解Java虚拟机》,前者较好的讲解了java中并发编程的实现,内容通俗易懂,主要理解volitile和sychornizer,涉及到底层封装,主要是通过CAS和AQS实现的,而原子类、JUL下的工具类等实现也是上述两种方法实现的,而并发最重要的技术体现就是线程池技术(此处是重点,源码)和锁(主要理解对象的头部markhard部分,在此基础上学习下重入锁、读写锁,而悲观锁、乐观锁、轻量锁、重量锁等概括要通过相应的关键字来理解);后者较深,不建议Java入门学习,只要对JVM底层结构有一定了解,对内存模型有概念,对GC的实现理解其算法和流程就好。
Java是面向对象编程,面向对象编程的一个特点就是有很多设计模式,比如单例模式(懒汉和饿汉)、工厂模式、策略模式、迭代器模式、服务端和客户端模式等等,这些设计模式可以看一些书学理解一下精髓,推荐《设计模式解析》,设计模式只要先懂精髓就好,这个跟jvm比较相识,在实际工作中理解效果更好,)世界上本没有路走的人多了也就成了路(,一个道理的。
框架相关:
经典的SSM(spring、springMVC、mybatis),要对其使用、结构、源码实现有一定理解,其中spring的IOC和AOP,springMVC和服务器/bean层的关系及实现,mybatis的源码实现(mybatis源码流程相对简单,便于学习java代码)。现在用的最多的是springboot,便于快速构建,但是缺点是缺少对具体实现的感知,需要有SSM或SSH的组合理解(不推荐SSH呀,太老了)。
Netty框架是一种网络通信框架,基于Netty可以实现客户端和服务端的消息通信,基于Netty可以学习一下NIO的具体实现(AIO,BIO最好懂一下原理)。
常用技术栈:
数据库技术懂mysql就好,会用最基本的select、delete、update、query(orderby,groupby)就好,最好会用index(索引,公司用的比较多的内容,基于红黑树),自己可以试着建表,多线程访问增删改查,看看效果。数据库的四大特性及引入的三大问题,及解决问题的四大隔离事务都要懂。
web相关技术,需要懂一下http、https协议,对request和response相关字段要理解,可以通过postman在网上找一些例子进行学习。而且要懂socket编程,不管是Java还是其他语言,socket编程都是最基本的服务端和客户端的通信方式。
linux的常用命令一定要会用(自己多用用就好了),并且最好试着跑一下服务端程序,试试效果。git也要会用,可以在github上建立一个库,上传自己开发的程序。
Java学习计划,给自己一个学习线路相关推荐
- python全栈计划_Python 全栈学习视频教程,包含了从 0-99天的全栈学习计划,估计可以学习 1024 小时。...
今天跟大家推荐某大厂出 Pthon\Mysql\Linux 神器,据说是大厂内部大神分享的资料,不论是资料的详细程度和质量,都非常稀有! 我们知道,不论是高级开发和运维工程师,Linux 命令熟练程度 ...
- Android每周一个学习计划——RxJava2 0的学习使用
序言:蜗壳已经退役一年多了,但是还是抵不住蜗壳在NBA界的影响力,最近NBA流行向"蜗壳挑战",事情起源于蜗壳给IT和北境之王设定了新赛季的挑战,然后众多球星也纷纷向蜗壳讨要挑战. ...
- 计算机学习计划范文,【计算机学习计划范文】
为了更好地利用计算机进行办公与教学,为将来计算机入教室打好基础,必须将计算机培训工作认真有效地开展起来,那么具体如何计划呢?下面是由小编整理的计算机学习计划范文,一起来看看吧. 计算机学习计划范文篇一 ...
- 应用文写作 计算机专业 学习计划,个人应用文写作学习计划例文
个人应用文写作学习计划范文撰写人:___________日 期:___________ 个人应用文写作学习计划范文 撰写人:___________ 日 期:___________ 第 PAGE 页 共 ...
- 计算机新学期学习计划,新学期计算机学习计划
新学期计算机学习计划Tag内容描述: 1.小学计算机教师新学期计划范文 为了适应信息社会的发展需要 满足教育信息化的要求 培养学生的创新精神和实践能力 为此 特制定如小学计算机教师新学期计划 1 一 ...
- 计算机学习计划范文,教师个人计算机学习计划书_老师计算机学习计划范文
教师个人计算机学习计划书篇三 为了进一步提高全校教师计算机应用水平,让信息技术更好的服务于教育教学.特制定本计划. 一.培训目标: (一)了解信息技术基础知识及其在教学中的应用. (二)掌握用键盘输入 ...
- 【假期学习计划】深度强化学习算法与应用培训班
深度强化学习应用与实战培训班内容 一.强化学习概述 二.马尔科夫决策过程 1.马尔可夫性 2.马尔可夫决策过程 3.策略与价值 4.最优化原理 5.MDPs扩展 三.动态规划 1.动态规划 2.价值迭 ...
- Flash3D学习计划(三)——学习VB,IB相关,理解三角形顶点顺序;在屏幕上显示2D矩形,并实现缩放,平移,旋转...
VB:顶点缓冲 IB: 顶点索引缓冲 三角形的顶点顺序决定了三角形是顺时针还是逆时针,从而决定了三角形在背面剔除的过程中是否会被剔除掉. 相关理论知识可以在前面的文章中找到更多的说明. 实现效果 sf ...
- 第一学期《计算机网络》作业一_新学期学习计划合集5篇-其他范文
[前言]新学期学习计划共含5篇,由好范文网的会员投稿推荐,小编希望以下多篇范文对你的学习工作能带来参考借鉴作用. 第1篇:新学期学习计划 这篇新学期学习计划范文是我们精心挑选的,但愿对你有参考作用. ...
- CISCO、JUNIPER网络技术训练中心ITAA等级四(RS)学习计划蓝图(version 1.0)
itaa等级四(rs)学习计划蓝图(version 1.0) 2000小时技术学习计划蓝图 一.内容组成: bridging and switching a. frame relay b. catal ...
最新文章
- python讲1020逆序输出_手把手带你学 Python3(九)| 快速实现数据处理的不二工具(文末有彩蛋)...
- Mysql UTF8 varchar与Oracle ZHS16GBK varchar2同长度下存汉字的差异
- css div滚动_如何使用CSS创建可垂直滚动的div?
- coupled/decoupled
- Spring Boot基础学习笔记22:自定义用户控制、登录与退出
- iOS 检测网络状态
- 从零开始学习Sencha Touch MVC应用之十四
- iText关于中文的解决方案
- 26.逻辑卷管理器(Logical Volume Manager)
- SheetJS 读取excel文件转出json
- cppcheck的安装与使用
- 便捷开票二维码应用简介
- postfix(邮件服务器)说明与postconfig命令详解
- matplotlib绘制图像设置中文宋体,英文新罗马,字体大小7.5,坐标轴刻度线内侧
- linux 修改文件内容命令
- 解决ValueError: too many values to unpack
- Redis——Redis哨兵模式
- 银行家算法##大魔王程序员
- 2014年注电考试心得
- 苹果台式一体机笔记本安装win7双系统攻略教程
热门文章
- struts2中拦截器和过滤器的比较
- CSS自学笔记(16):CSS3 用户界面
- 百度网站打不开了,百度被黑了?最新证实:百度遭黑客劫持,手段类似于12月被劫持的twitter(截图)...
- 让 .NET 程序 Autorun
- NickLee.FortuneBase数据库sql server版工具篇
- 前端每日实战:142# 视频演示如何用 CSS 的 Grid 布局创作一枚小鸡邮票
- php 数据集转换树、递归重组节点信息多维数组(转)
- 10月13日云栖精选夜读:【云栖大会】阿里云和红帽达成合作为百万级客户提供更多企业级解决方案...
- javascript 观察者(发布订阅)模式详解
- 性能调优:理解Set Statistics IO输出