Java怎么自学?Java学习线路图
Java的地位一直以来都是无可撼动的!你可知你所知的应用90%的服务器端都在用Java!绝地求生、王者荣耀,这些游戏的服务器语言是Java,随意搜索一下Java开发工程师,各行各业几乎都需要!如图所示,在加上Java的高工资,就导致了越来越多人想要进入Java这个行业,好多人选择自学,那么Java该怎么自学呢?
自学还是培训?
自学还是培训,这是个很让人困扰的问题,其实这个问题回答起来也很简单,你的自控力好不好?理解能力好不好?自己一个人学习能不能学下去,如果可以,那自学没有问题!如果不好,那只能去培训了。
自学该怎么学?
1.想要自学,首先要有一颗真的想学习的心,如果你只是看到了身边朋友赚得多,就匆匆学习Java,这很盲目,先想想自己适不适合学,然后是否真的下定决心要学,如果真的下定决心了,那就一定要好好学,
2.看书也很重要,不要说现在谁还看书怎样怎样!老一辈的传统是有道理的!我们上大学、上初中都是有课本的,你学Java肯定也是要看书的,这里我想说的是Java入门可以看《Java基础入门》,从初学者的角度,以形象的比喻、丰富的图解、实用的案例、通俗易懂的语言详细讲解了Java开发中重点用到的多种技术。
看视频学习,除了要看书外,看视频也是一个很好的自学渠道。有老师的讲解,可能书上的知识更容易学一点哦!Java入门视频**简单合适的就是毕向东老师的,讲解的很到位,而且老师比较幽默,课程学起来不会那么枯燥!
Java学习线路图
分享一张Java学习的线路图,图片内容比较密集,可以点击查看大图查看。不然容易看不清楚哦!
【阶段一】Java编程
Java基础
开发简单的java应用程序 | 软件的概念、计算机语言的发展、dos常用命令,java概述、jdk与jre、path与classpath环境变量的配置和理解、helloJava程序入门(notepad编写)、单行注释、多行注释、文档注释 |
变量和数据类型 | 变量的声明与使用、标识符命名规范、8大基本数据类型与引用类型、进制的介绍与转换、数据类型的转换 |
运算符 | 表达式概念、算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符、运算符优先级 |
条件结构 | 简单if、简单if…else、嵌套if、多重if、switch条件结构 |
循环结构 | while、do…while、for、break和continue、多重循环 |
数组 | 数组的概念、数组的静态,动态初始化、冒泡排序法、插入排序法、选择排序法、线性查找法、二分查找法、Arrays类使用、二维数组的定义与初始化、数组在内存中的分配原理 |
面向对象编程 | 类和对象概念、对象的创建、方法的声明、方法的执行过程、OverLoad(重载)、变量的作用域、String对象的声明操作、Java内存管理机制、封装概念、UML类图、构造方法、this关键字、static关键字、package(包)、继承、super关键字、OverRide(重写)、final关键字、多态、静态绑定与动态绑定、对象的上下类型转换、Object对象常用方法、抽象类、模板方法设计模式、接口、面向接口的编程思想、简单工厂设计模式、单例设计模式((懒汉式、饿汉式)、策略设计模式 |
Java高级
高级特性 | 内部类概念、成员内部类、静态内部类、匿名内部类、局部内部类、自动装拆箱、枚举类、String、StringBuffer、StringBuilder、Date和SimpleDateFormat类、Canlendar、GregorianCalendar、Math、Random、正则表达式 |
异常处理 | 异常概念、异常分类、异常处理机制、受查异常和非受查异常、try-catch-finally、throw关键字、throws关键字、自定义异常、异常注意事项 |
泛型 | 泛型简介、泛型类、泛型方法、限制泛型可用类型、类型通配符 |
IDE | IDE介绍和Eclipse使用、debug程序调试、junit单例测试 |
集合 | 集合框架的层次结构、Collection接口、Iterator接口、List接口、ListIterator接口、ArrayList类、LinkedList类、Map接口、HashMap类、HashMap底层原理、TreeMap、Comparator和Comparable接口、Set接口、HashSet类、TreeSet类、Collections类的使用。 |
反射 | 反射的概念、类加载的原理、反射属性、反射方法、反射加载配置文件的原理、反射创建对象。 |
多线程 | 进程和线程的概念、多线程概念,掌握多线程的实现方案,如何获取和设置线程名称、线程的生命周期、如何解决线程安全问题、线程同步、Lock锁、死锁问题、线程间通信、线程的状态及状态转换、线程池概念与作用。 |
IO | IO框架介绍、File类的使用、IO流的分类、字节流、字符流、字节缓冲流、字符流、字符缓冲流、打印流、标准输入输出流、对象序列化流、随机访问流、Properties集合、装饰(包装)设计模式 |
网络编程 | 网络基本概念、网络编程的三要素,Socket原理机制、UDP传输、TCP传输、URL编程等。 |
注解 | Annotation简介和标准、常用的java注解、自定义注解、反射注解中的属性 |
XML与json入门 | XML简介、XML的基本语法、XML创建、命名空间概念、DTD和schema的了解、DOM解析、SAX解析、DOM4J解析、XPath的使用、JSON概念、JSON语法、JSON对象、JSON数组、JSON解析 |
阶段贯穿项目:影院订票管理系统、ATM银行管理系统、多人聊天室
【阶段二】数据库开发
Oracle数据库
关系型数据库基础 | 关系型数据库的概念、Oracle简介、Oracle**与安装、Oracle的卸载、Oracle的组成 |
查询语句 | SELECT查询基础语法、*通配符、查询指定列、查询中的算数表达式、NVL函数对null值进行替换、列别名、DISTINCT、ORDER BY ASC/DESC、WHERE 条件中的运算符、BETWEEN…AND、IN、模糊查询、查询中的逻辑运算符、描述条件的优先规则 |
单行函数 | 函数简介、字符函数、数值函数、日期函数、转换函数 |
多表查询 | 多表查询的概、联接类型、检索自然联接的记录、给多表设定别名、 USING 子句创建联接以确定各表之间的特定列、 ON 子句指定任意条件或指定要联接的列、掌握外部联接类型 LEFT、RIGHT 和 FULL |
组函数 | 对组函数进行描述和分类、使用组函数、将 DISTINCT 关键字与组函数配合使用,如何使用组函数处理 NULL、使用 GROUP BY 子句创建数据组、使用多个列来分组数据、使用组函数避免非法查询、使用 HAVING 子句排除数据组 |
子查询 | 子查询的概念、查询结果作为另一个查询的数据表,查询结果作为另一个查询的条件、如何编写高效的sql。 |
数据建模和数据库设计 | 系统开发概念、数据库设计的关键因素、实体关系建模、实体间关联关系的类型、三级范式 |
DDL语句 | 创建表结构(create table)、字段数据类型、约束(主键约束、外键约束、默认约束、检查约束等)、删除表(Drop table)、修改表结构(Alter table)、对表进行重命名等 |
DML语句 | INSERT语句、update语句、delete语句、事务 |
Oracle数据字典 | 使用数据字典查询有用数据、查询各种数据字典 |
常见数据库对象 | 创建视图、从视图中获取数据、创建、维护和使用序列、创建和维护索引、创建同义词(SYNYM)、创建存储过程、掌握触发器、数据备份与还原 |
阶段课程项目: 亚马逊在线书城数据库设计、友邦保险CRM数据库设计、去哪玩数据库设计
JDBC
JDBC基础 | JDBC简介、JDBC驱动的原理及使用、JDBC核心使用、DriverManager、Connection、Statement、ResultSet详细使用,JDBC的CURD操作、防止SQL注入及PrepareStatement使用。 |
JDBC高级 | ORM思想、一对多映射关系、连接池介绍、C3P0、DBCP连接池使用。DBUtils介绍、DbUtils类的使用、QueryRunner类的使用、ResultSetHandler详解、DBUtils实现事务的处理。 |
阶段课程项目: 二嗨租车系统、backStone(数据库备份还原系统)
【阶段三】Web前端开发
Web前端页面开发
HTML | HTML简介,HTML的整体结构、文本标签、行级标签、块级标签、字体标签、列表标签、图片标签、超链接标签、表格标签、表单标签、DIV标签、HEADER标签、多媒体标签。 |
CSS | CSS简介、CSS导入方式(内部样式表、内联样式表、外部样式表)、CSS选择器(ID选择器、类选择器、元素选择器、属性选择器、伪类等)、CSS字体和文本相关属性、CSS边框和背景相关属性、CSS列表和表格相关属性、CSS常用伪类别属性、盒子模型和元素定位(float、position)、DIV CSS实战 |
课程案例:彩妆热卖产品列表、带按钮的轮播广告、 美容产品热点、 商品分类
课程项目:新疆旅游网站、新品游戏网站
Web前端脚本和框架开发
JavaScript | JavaScript简介、JavaScript语法、Javascript数据类型、运算符、表达式、流程控制,JavaScript内置对象、数组、字符串、日期时间、数学函数、正则表达式,JavaScript函数、Javascript自定义函数、Javascript创建对象的方式、BOM介绍、DOM介绍、方法和事件、事件对象、使用DOM操作HTML文档、遍历文档树上的节点、搜索文档中特定的元素、修改文档内容、往文档添加新内容、使用DOM操作 XML文档。 |
jQuery | jQuery简介、JQuery对象与DOM对象的转换Jquery选择器介绍(基本选择器、层次选择器、基本过滤选择器、内容过滤选择器、可见性过滤选择器、属性过滤选择器、子元素过滤选择器、表单选择器、JQuery操作DOM操作、查找元素/属性节点、创造元素/属性/文本节点、插入节点、删除节点、复制节点、替换节点、包裹节点、属性操作、样式操作、遍历节点、CSS-DOM操作;动画和事件:jQuery中的事件、加载DOM、事件绑定、合成事件、事件冒泡、事件对象的属性、移除按钮上注册的事件、模拟操作、JQuery中的动画、JQuery插件的使用 |
EasyUI | EasyUI概述、常用UI控件学习(Layout、Menu、Tree、DataGrid、Calendar)、后台管理页面实战 |
课程案例: 带按钮的轮播广告、带关闭按钮的浮动广告、对联浮动广告制作、多级菜单的制作、右下角延时广告弹出窗口、
制作伸缩菜单导航条、 百叶窗推拉效果、 画廊、照片墙、、图片放大镜、仿淘宝图片左右切换
阶段课程项目:cloud教育平台系统(前端开发)
【阶段四】JavaEE基础开发
Servlet
Web简介 | Internet介绍、B/S、C/S、HTTP协议详解 |
Servlet基础 | WEB服务器的工作原理、Tomcat的安装与启动运行、Tomcat的体系结构、Tomcat部署web应用的三种方式、设置目录的默认网页、使用Tomcat配置虚拟主机、WAR文件生成与使用。 |
Servlet生命周期 | Servlet API和Servlet生命周期、Servlet生命周期、servlet配置详解、访问servlet路径分析、ServletConfig使用及servlet初始化参数的使用、ServletContext使用、系统初始化参数、web资源获取。 |
Servlet表单处理 | HttpServletRequest处理表单、POST和GET请求的乱码处理、请求转发和重定向 |
会话跟踪 | 会话的概念、Cookie及Cookie的应用、Session的概念、Session跟踪机制、利用Session防止表单重复提交、Session的持久化、URL重写 |
过滤器与监听器 | 监听器介绍及使用、过滤器介绍、过滤器生命周期、过滤器链分析、FilterConfig介绍、邮件发送、自动登录功能的实现。 |
JSP
JSP介绍 | JSP简介、JSP与Servlet的关系、JSP页面的组成、JSP的执行过程、MVC模式的演变(Model 1、Model 2、MVC) |
JSP常见标签 | page指令及其重要的属性,在web.xml文件中设置全局错误处理。JSP常用隐式对象、JSP隐式作用域对象、JSP动作指令介绍。 |
EL表达式&JSTL标签库 | EL获得数据、EL执行运算、EL内置对象、EL函数,JSTL核心标签库、JSTL国际化标签库、JSTL函数。 |
AJAX
Ajax | AJAX简介、XMLHttpRequest对象详解、JQuery的AJAX、Ajax处理服务端返回的文本、XML和JSON格式的数据 |
WEB高级
Web强化 | MD5加密、分页、文件上传、**、动态代理 |
项目管理
SVN&Maven | 掌握SVN的配置和使用,Maven介绍及依赖管理;安装配置;核心概念、与第三方Eclipse的整合、Maven管理Web应用;Maven管理SSH应用;使用Maven进行测试及集成;掌握Maven在Java Web应用的配置、管理和使用等技术。 |
阶段贯穿项目:站内短消息应用系统、个人博客应用系统
阶段课程项目:亚马逊电商系统、 友邦客户关系管理系统
【阶段五】Framework和JavaEE高级开发
JavaEE高级框架开发
Hibernate | ORM简介、Hibernate概述、Hibernate开发步骤和运行过程、Hibernate核心API(Configuration、SessionFactory、Session概述、Transaction、Query和Criteria接口)、HQL检索方式、对象/关系数据库关联映射、持久化对象状态、Hibernate缓存(一级缓存、二级缓存) |
Struts2 | Struts2框架概述、工作原理与架构分析、6大配置文件分析、struts.xml详解及使用,使用通配符定义action、动态方法调用,ActionContext及ServletActionContext使用,模型驱动ModelDriven、属性驱动, Struts2文件上传,默认拦截器分析、自定义拦截器、OGNL表达式、值栈ValueStack分析及操作、Struts2标签。 |
Mybatis | Mybatis架构、Mybatis入门程序、Mybatis开发Dao、SqlMapConfig.xml配置、ParameterType输入映射、ResultType及ResultMap输出映射、动态sql、商品订单数据模型、关联查询(一对一、一对多、多对多)、延迟加载、查询缓存(一级缓存、二级缓存)、Mybatis与Ehcache整合实现二级缓存、Mybatis与spring整合、Mybatis逆向工程。 |
Spring | Spring框架概述,IoC思想、DI依赖注入、Bean的实例方式、Bean种类、Bean作用域范围、依赖注入、SpEL spring表达式、注解装配Bean、整合Junit测试、web开发集成Spring、AOP思想、使用AspectJ切面编程、JdbcTemplate模板使用、C3P0数据源配置、DBCP数据源配置、声明式事务管理、SSH整合。 |
Spring MVC | Spring mvc介绍、Web MVC应用、Spring web mvc架构、springMVC入门程序、非注解处理器映射器和适配器、注解开发处理器映射器和适配器、springmvc整合Mybatis、RequestMapping、Controller方法返回值、参数绑定、springmvc与struts2区别、springmvc上传图片、json数据交互、Validation、异常处理器、RESTful支持、拦截器。 |
框架整合 | SSH&SSM框架和项目配置管理Maven的集成开发(重构贯穿项目) |
阶段贯穿项目: OracleCRM系统、cloud云在线教育平台
毕业项目:Oracle在线教务系统、保险经纪平台、去哪玩旅游网、软件外包平台
Java目前前景怎么样?还能继续学吗
目前智联,boss,拉勾网的招聘来看,java的需求量还是排名**,但是这个需求是有前提条件的,就是需要有工作经验,因为你没有工作经验,公司就会认为你没有开发项目的能力,自然不会要你,所以你在学习中,一定要培养自己的经验,什么是经验?就是多多遇到问题,然后解决问题,这就是解决,也可以成为解决问题的能力。有人说Java饱和了,这是绝对不可能的,只能说你现在竞争大,学习的人,质量差了而已。所以很多人说找不到工作。其实他自己啥都不会。这只是针对一线城市而言,相对于二三线城市来说对于实际开发经验是稍微的放松的。
何时使用Assembly.LoadFrom?何时使用Assembly.LoadFile?
相比LoadFile,LoadFrom则显得不地道,因为它娶媳妇的时候,是让人家穿上嫁妆,坐上马车,还得带着人家的妹妹来,:)用它加载的是程序集,这就要求同时将此程序集所依赖的程序集加载进来。而LoadFile就地道的多,它是加载程序集文件的内容,只将传入参数的文件加载,不考虑程序集依赖,但如果有相同实现,但位置不同的文件用LoadFrom是不能同时加载进来的,而LoadFile却可以。由于LoadFile加载的是文件,所以调用它之后,可能因为缺少必要的依赖造成无法被执行。
调用Assembly.Load算静态引用还是动态引用?
动态
Java线程:概念与原理
操作系统中线程和进程的概念
现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。
“同时”执行是人的感觉,在线程之间实际上轮换执行。
Static Nested Class 和 Inner Class的不同
Nested Class(一般是C 的说法),InnerClass(一般是JAVA的说法)。Java内部类与C 嵌套类**大的不同就在于是否有指向外部的引用上。注:静态内部类(InnerClass)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象
做强签名的assembly与不做强签名的assembly有什么不同?
强签名的程序集可以做成com,而不做强签名的就不行,同样强签名程序集可以安装到GAC中,而不做强签名的确不能。
相关推荐:
体验课预约试听
倒计时
课程热线:
客服在线时间:早上9点~下午6点,其他时间请在线预约报名或留言,谢谢!