自学java

1年前 (2024-02-29)阅读2回复0
kanwenda
kanwenda
  • 管理员
  • 注册排名1
  • 经验值724192
  • 级别管理员
  • 主题144838
  • 回复1
楼主

自学java

“这是一篇完整的java程序员学习线路图,一共分为六个阶段。

我以java为例,展示完整的学习步骤。

希望对于想通过java自学的朋友有帮助。

java程序员学习线路流程

自学java

之一步:Java语言基础

从最简单的开始,hello world开始Java之旅

1.编程基础

  1. 常量与变量

  2. 数据类型

  3. 运算符

  4. 流程控制语句

  5. ***

  6. 数组

2.面向对象

  1. 面向对象思想

  2. 类与对象

  3. 成员变量和局部变量

  4. 封装

  5. this关键字

  6. 构造 ***

3. ***

  1. *** 概述

  2. *** 特点

  3. ArrayList ***

  4. HashMap ***

  5. 常用 *** 优劣比较

4.输入/输出 IO

  1. 字符输入流

  2. 字符输出流

  3. 字符缓冲输入流

  4. 字符缓冲输出流

  5. 复制文件

  6. *** 与文件中数据相互读写

5.练习阶段

属于你自己的helloword

第二步:java语言高级

自学java

再结合java高级部分,里面的部分内容,这个阶段你不一定能理解很彻底。但有一点,如果你今后想进入高阶俱乐部,这些内容你必须掌握牢固。

举个栗子,如果你面试通过进入了公司,我一定会在早期仔细review你的代码。代码的功力是欺骗不了人的,不同人写一个接口,呈现的结果也是千差万别(所以才有了规范)。

1.面向对象

  1. 继承

  2. 多态

  3. 重写(Override)

  4. 重载(Overload)

  5. 封装

  6. 接口

  7. java包 package

2.异常处理

  1. 异常概述

  2. 异常分类

  3. 异常处理方案

  4. 自定义异常

3.多线程

  1. Java线程:概念与原理

  2. Java线程:创建与启动

  3. Java线程:多线程的实现方案

  4. Java线程:线程生命周期

  5. Java线程:线程池

  6. Java线程:线程状态的转换

  7. Java线程:线程的同步与锁

  8. Java线程:线程的交互等等

线程的几个主要概念

在多线程编程时,你需要了解以下几个概念

  • 线程同步

  • 线程间通信

  • 线程死锁

  • 线程控制:挂起、停止和恢复

4.输入与输出IO

  1. 文件和I/O

  2. 读写文件

  3. Java 流(Stream)

  4. 文件(File)

  5. 缓冲流

5.泛型(Generic )

  1. 泛型的使用场景

  2. 泛型类型

  3. 泛型 ***

  4. 泛型通配符?

6. *** 编程

  1. *** 机制

  2. Socket原理机制

  3. UDP、TCP传输等

7.反射(reflection)

  1. 类加载机制原理

  2. 反射构造 *** 、字段、 ***

  3. Properties配置文件

8.注解(annotation)

  1. 注解的使用和原理

  2. 三种内置annotation

  3. 自定义annotation

  4. 注解类的反射调用

  5. 动态 *** 类如何处理

9.Java高级特性和类库

  1. java类加载器class loader

  2. java 程序运行的基础知识,java编译后的bytecode的整个运行机制,这一点对应.net的IL(intermediate language)。

  3. 理解Java nio,关于这一点网上有非常多的教程,这一条需要重点掌握,对于高并发的掌握很重要。

  4. java juc(java.util.concurrent)等等

10.JVM原理和调优

JVM最重要的三个部分必须要非常清楚,内存划分、class加载机制以及GC策略。搞清楚这三部分不仅仅是为了面试,也是为了让你对于Java有更深刻的理解,这对于你的Java生涯非常有帮助。

内存划分简单说分为三个部分,Young Generation(年轻代)、Old Generation(年老代)以及Perm Generation(永久代)。其中的Young Generation(年轻代),又分为Eden、From和To,其中From和To又统称为Survivor Spaces(幸存区)。

关于classloader机制的学习,可以结合tomcat去学习,了解清楚tomcat的classloader机制,看tomcat是如何保证各个APP之间的类隔离的。如果可能的话,看一下tomcat中classloader的源码,当中也包含了与tomcat类加载机制相似的部分。

至于GC,需要清楚GC Roots都有哪些,以及如何判断一个对象可以被回收。此外,GC的算法和策略也要有大概的了解。

第三步:java web阶段

自学java

1.前段技术掌握

  1. html

  2. css

  3. js

  4. jquery

  5. bootstrap

2.动态网页技术

  1. Java Servlet API

  2. Velocity

  3. FreeMarker

  4. *** P等常用模板引擎

比如, *** 前端层使用的是velocity模板,部分公司采用jsp、freemarker等,基本类似。

3.linux服务器基本命令

在个阶段,也可以结合自己的情况,学习linux系统底层原理。

第四步:java框架阶段

1.SSH(struts2+spring+hibernate)

2.S *** (springmvc+spring+mybatis)

备注:如果你仔细,网上有部分叫SSI,I为ibatis,后来ibatis改名为mybatis了。

框架组合,我首推S *** ,比SSH灵活强大。

框架的优缺点,我会再单独写文。

如果你还有兴趣,可以自己搭建Lucene、solr框架,以及memcached/ redis、activeMQ、hadoop等等搜索、分布式缓存、异步消息、数据等。

我一般建议自己搭建,从学习效果再到理解深度都不一样。有兴趣,就开始自己搭建。

第五步:开发工具阶段

1.web调试工具

  1. firefox

  2. firebug

  3. web developer

  4. yslow

  5. httpwatch

  6. ietester等

这些都是开发必用。

2.集成开发工具

eclipse(首推) ,STS,myEclipse,Idea

eclipse里的插件太多,推荐几个必装插件:

JadClipse 、run-jetty-run(很牛的热部署调试)、veloctiy、freemarker IDE、Subclipse、m2eclipse、mybatis Editor、 Easy Explorer等等。

3.版本控制工具

svn、git(首推)

4.构建工具

maven、nexus搭建maven私服

建议自己搭建一套nexus maven私服,成为你们公司的代码仓库员。

5.java调试工具

  • jProfiler(性能跟踪)

  • jClarity(性能监控和日志分析)

  • Visualvm(性能分析和调优)等

优知学院是IT人的进阶站,提供系统的互联网产品&技术的入门指南以及进阶干货。

0
回帖

自学java 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息