• 我想每个前端都有个后端梦 引言 ...本文将以 Java 语言 Mac 环境为视角搭建 Java 后端环境。注:文中所指前端泛指 web 前端以及 Android 、iOS等广义前端。JDK 8 配置下载地址: http://www.oracle.co

    我想每个前端都有个后端梦

    引言

    • 是不是对后端开发多少有点敬畏感?每个端都没有后台的支撑和交互都是一座座孤岛。
    • 前端开发多年不懂不会后端开发有没有一种武功秘籍研习多年不得融会贯通之感?

    本文将以 Java 语言 Mac 环境为视角搭建 Java 后端环境。

    注:文中所指前端泛指 web 前端以及 Android 、iOS等广义前端。

    JDK 8 配置

    下载地址:
    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    Mac 直接安装后,Mac os 已经默认配置好了环境变量,windows 用户还需要配置下环境变量。

    • 验证是否配置成功 : 打开终端(Terminal、cmd)输入: Java -version

    java version “1.8.0_112”
    Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
    Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
    如果告诉你版本号,恭喜你配置成功。如果是找不到命令,那么你需要去检查一下环境变量的配置。

    IDE intellij idea

    工欲善其事必先利其器

    可能这里有的同学疑问为什么不用 eclipse/myeclipse 作为开发工具?

    • 3年前还在开发 Android 的同学可能也经历过使用 eclipse 转到 Android Studio 的阵痛,各种快捷方式和界面变化的不习惯。心里把 google 骂了一千遍吧,现在让你回去 eclipse 你还回得去吗?我只想说卧槽~好用!
    • intellij idea 是未来的趋势,目前的市场份额也在逐年上升。
    • 强大的索引功能 和 强大的调试功能

      如果非要我还给一点理由:界面好看逼格高

    这里写图片描述

    下载地址:

    https://www.jetbrains.com/idea/download/#section=mac

    idea 分为两个版本,就像 eclipse 对比 myeclipse

    • Community 社区版本,功能比较少。免费
    • Ultimate 旗舰版,功能齐全。收费

    你在搞笑吗,zai zhong guo xiang zuo shou fei ruan jian?(我们只是暂时使用。有条件请付费获取正版,尊重他人劳动成果)

    破解步骤

    获取注册码 : http://idea.lanyus.com/
    请将“0.0.0.0 account.jetbrains.com”添加到hosts文件中
    Mac hosts 地址: /private/etc/hosts (温馨提示修改hosts文件需要系统可读可写权限)
    这里写图片描述

    安装的时候选择注册码选项

    这里写图片描述

    主题等可以随心选自己喜好的

    这里写图片描述

    删除一部分不必要的组件

    这里写图片描述

    继续 next , 上面不重要的步骤没有每步都截图。当看到上图的画面恭喜你,安装且破解成功~!如果有没有成功安装的同学不要灰心,可以在评论下方大家一起交流和沟通。

    Tomcat 8

    如果 Apache 不是基金会而是个商业盈利公司,想想他的市值都可怕。

    下载地址: http://tomcat.apache.org/download-80.cgi
    Mac 版本的对应下载 tar.gz 格式文件包

    1. 将解压的 apache tomcat 安装包丢到资源库(Library)当中。开打 Terminal 执行
      这里写图片描述

    2. 打开 终端(Terminal),修改一下文件夹的权限
      sudo chmod 755 /Library/apache-tomcat-8.5.16/bin/*.sh
      这里写图片描述

    3. 按回车键之后会提示输入密码,请输入管理员密码。然后继续下面的命令打开tomcat服务
      sudo sh startup.sh
      这里写图片描述

    4. 打开浏览器,输入 http://localhost:8080/
      回车之后如果看到Apache Tomcat,表示已经成功运行Tomcat
      这里写图片描述

    5. 命令 sudo sh /Library/Tomcat/bin/shutdown.sh 可以关闭Tomcat。

    intellij idea 部署 tomcat

    • 在 intellij idea 创建一个工程
      这里写图片描述
    • 选择右上角的 Edit Configurations… 看到配置界面
      这里写图片描述
    • Defaults 下拉 选择 Tomcat Server 注意和 TomEE Server 区分
      这里写图片描述

    这里写图片描述

    • 远程和本地 选择本地 loacl, 把我们开始在资源库配置的 tomcat 路径选中上去 点击 Apply 应用。
      这里写图片描述

    这里写图片描述

    • 选择左上角的 + 号,选中Tomcat Sever 在 Deployment 为其选择一个项目工程 点击 Apply 应用

    这里写图片描述

    这里写图片描述

    • 点击 OK 回到主界面,右上角 Tomcat 小图标旁的绿色箭头,点击 run。 启动 Tomcat 服务器。Server Output 输出相关信息表明启动服务成功,另外浏览器也会去访问本地 local 8080 的地址。

    这里写图片描述

    这里写图片描述

    这里写图片描述

    至此 idea 部署 Tomcat 配置完毕~!
    mysql 后期再续~

    写博客不容易,喜欢的话点个赞或评论呗~

    展开全文
  • java 后台路线学习

    2018-07-09 10:42:55
    转载:java 后台学习流程 -- 云中志 首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往java ee方向发展的,学习完前端,在学习后端很多东西比计较容易理解!...

    转载:java 后台学习流程 -- 云中志

     首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往java ee方向发展的,学习完前端,在学习后端很多东西比计较容易理解!

      其中J2SE是关键,如果学好了java se 部分,基础扎实了,后面进阶学习也比较轻松!

      补充说明一下:我觉得学习java比较合适的方法是先把所有的知识点过一遍,然后把所有的知识点串起来,边做开发边补充,就像写文章一样,先写好框架,然后再去润色填充。因为前期在学习的时候你不知道用在哪里,不知道用途,没有学习的目的,所以很多概念就很难理解,时间久了也容易遗忘。但是如果你直接从实践开始学习,很多知识点都充串联起来了,而且会印象深刻,当然前提条件是你已经入门,已经能写一些简单的程序,我个人现在也是按照这个方式在学习了,感觉很有效。

      说明:本文介绍的内容过于详尽,这里我补充一些基本的学习路线,相对比较简略,但是比较可行:

        1、基础语法。也就是我们常说,各种编程语言都有的部分,数据类型,数组,for循环,do-while,switch……等等,是学习任何编程语言的基础,很关键。

        2、面对对象:①类和对象;②Java的三大特性(封装、继承、多态);

        3、工具类:①异常和异常处理;②集合框架(主要是List和Map);

        4、常用的流(stream):①输入流;②输出流;③缓冲流;

        5、网络与线程:①Socket ; ②多线程(Thread,Runnable);

        6、数据操作:①Mysql、Oracle; ②JDBC;

        7、web基础:①Html/css;②Javascript;③JQuery;

        8、框架。

      这里放上我自己整理制作的百度脑图知识架构:百度脑图

      只要学会上面的前7条,基本上从前台到后台开发常见的应用还是没太大问题的,当然学习了框架以后,那就最好了,但关键还是要学好基础,说实话,像下面这个表格中所列的知识点,真正能全面掌握还是有难度的,所以凡事还是要踏踏实实的静下心学习,不要只看学习的进度,要看学习的效果。

    第一阶段

    技术名称

    技术内容

    J2SE
    (java基础部分)

    java开发前奏

    计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置,程序的执行过程,相关反编译工具介绍,java开发工具Eclipse的安装和使用,javadoc的说明。

    Java基础语法

    Java语法格式,常量和变量,变量的作用域,方法和方法的重载,运算符,程序流程控制,数组和操作数组的类,对数组循环遍历以及针对数组的常用查找、排序算法原理,最后使用Java程序进行功能实现。

    面向对象编程

    理解对象的本质,以及面向对象,类与对象之间的关系,如何用面向对象的思想分析和解决显示生活中的问题,并java程序的手段编写出来。
    如何设计类,设计类的基本原则,类的实例化过程,类元素:构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃圾对象回收机制。
    对象的三大特性:封装、继承和多态。子类对象的实例化过程、方法的重写和重载、final关键字、抽象类、接口、继承的优点和缺点。

    对象的多态性:子类和父类之间的转换、父类指向子类的引用、抽象类和接口在多态中的应用、多态优点。常用设计模式如单利、模版等模式。什么是异常 异常的捕捉和抛出 异常捕捉的原则 finally的使用,package的应用 import关键字。

    多线程应用

    多线程的概念,如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁问题的剖析。

    javaAPI详解

    JavaAPI介绍、String和StringBuffer、各种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。
    常用的集合类使用如下:Java Collections Framework:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。

    IO技术

    什么是IO,File及相关类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应缓冲流和管道流,字节和字符的转化流,包装流,以及常用包装类使用,分析java的IO性能。

    网络编程

    Java网络编程,网络通信底层协议TCP/UDP/IP,Socket编程。网络通信常用应用层协议简介:HTTP、FTP等,以及WEB服务器的工作原理。

    java高级特性

    递归程序,Java的高级特性:反射、代理和泛型、枚举、Java正则表达式API详解及其应用。

     

    第二阶段

    技术名称

    技术内容

    数据库技术

    Oracle 基础管理

    Oracle背景简介,数据库的安装,数据库的用户名和密码,客户端登录数据库服务SQLPLUS,数据库基本概。

    SQL语句

    数据库的创建,表的创建,修改,删除,查询,索引的创建,主从表的建立,数据控制授权和回收,事务控制,查询语句以及运算符的详解,sql中的函数使用。

    多表连接和子查询

    等值和非等值连接,外连接,自连接;交叉连接,自然连接,using子句连接,完全外连接和左右外连接,子查询使用以及注意事项。

    触发器、存储过程

    触发器和存储过程使用场合, 通过实例进行详解。

    数据库设计优化

    WHERE子句中的连接顺序,选择最有效率的表名顺序,SELECT子句中避免使用 ‘ * ‘ 计算记录条数等等。

    数据备份与移植

    移植技巧,备份方案;导入导出等。

     

    第三阶段

    技术名称

    技术内容

    jdbc技术

    JDBC基础

    JDBC Connection、Statement、PreparedStatement、CallableStatement、ResultSet等不同类的使用。

    连接池技术

    了解连接池的概念,掌握连接池的建立、治理、关闭和配置。

    ORM与DAO封装

    对象关系映射思想,jdbc的dao封装,实现自己的jdbc。

       可以把第四阶段的知识提前一点,特别是对哪些刚开始接触面向对象编程的同学,我刚开始就学java se,感觉入门很不容易。先学web部分,有利于理解面向对象的概念,另外,web部分相对比较简单,也比较直观,写完直接就可以看见效果,有助于提升大家的学习积极性。

    第四阶段

    技术名称

    技术内容

    web基础技术
    (项目实战)

    Xml技术

    使用jdom和dom4j来对xml文档的解析和生成操作,xml 的作用和使用场合。

    html/css

    Java掌握基本的html标签的格式和使用,css层叠样式表对div的定义,实现对网站布局的基本实现。

    Javascript

    了解javascript的基本语法以及相关函数的使用,并结合html页面实现流程控制和页面效果展示。
    什么是异常 异常的捕捉和抛出 异常捕捉的原则 finally的使用,package的应用 import关键字。

    jsp/servlet

    Servlet和SP 技术、上传下载、 Tomcat 服务器技术、servlet 过滤器和监听器。

    jstl和EL

    JSTL核心标签库、函数标签库、格式化标签库、自定义标签技术、EL表达式在jsp页面的使用。

    ajax及框架技术

    了解和属性原生态的ajax的使用,ajax使用的场合,使用ajax的好处,ajax框架jquery渲染页面效果和相关的强大的第三方类库,dwr如何和后台服务进行数据传输,以及页面逻辑控制等。

    JSON高级应用

    Java使用json支持的方式对字符串进行封装和解析,实现页面和java后台服务的数据通信。

    Fckeditor编辑器

    FCKEditor在线编辑器技术、配置、处理图片和文件上传。

    javaMail技术

    了解域名解析与MX记录、电子邮件工作原理、邮件传输协议:SMTP、POP3、IMAP、邮件组织结构:RFC822邮件格式、MIME协议、邮件编码、复合邮件结构分析、JavaMail API及其体系结构、编程创建邮件内容:简单邮件内容、包含内嵌图片的复杂邮件、包含内嵌图片和附件的复杂邮件。

    JfreeChart报表

    统计报表;图表处理。

    BBS项目实战

    采用Jquery+dwr+jsp+servlet+Fckeditor+JfreeChart+tomcat+jdbc(oracle) 完成BBS项目的实战。

    实战价值

    学完此课程你至少已经是拥有近1年开发经验的程序员了,但是你不应该满足现状,下面的课程会更加吸引你!

      框架部分,要要尽可能多的了解底层实现机制和原理,毕竟框架受大环境影响比较大,现阶段比较流行的是ssm框架(spring,Spring MVC,mybatis),以下是比较常用的框架:(本阶段在能够使用框架进行开发以后,要多做项目,多敲代码,当你已经特别熟悉各种应用场景,同时对于各种操作已经能够信手拈来,那么久可以考虑看源代码,研究底层实现机制,加深对框架的认知)

    第五经典阶段

    技术名称

    技术内容

    web主流框架技术
    (项目实战)

    struts x.x

    struts框架的工作原理和架构分析,struts-default.xml与default.properties文件的作用,struts。Xml中引入多个配置文件。OGNL表达式、Strutsx UI和非UI标签、输入校验、使用通配符定义action、动态方法调用、多文件上传、自定义类型转换器、为Action的属性注入值、自定义拦截器、异常处理、使用strutsx实现的CRUD操作的案例。

    hibernatex.x

    Hibernate应用开发基础; ORM基础理论; 关系映射技术; 性能调优技术; 性能优化 一级缓存 二级缓存 查询缓存 事务与并发 悲观锁、乐观锁。

    springxx.x

    Spring IoC技术; Spring AOP技术; Spring 声明事务管理; Spring 常用功能说明,springx.0的新特性, Spring整合struts和hibernate的运用。

    Spring MVC

    Spring自己的mvc框架,可以替代struts等MVC框架

    mybatis

    目前比较主流的持久层框架,需要手动配置sql语句,能够实现动态拼接sql

    Log4j和Junit

    Logging API; JUnit单元测试技术; 压力测试技术:badboy 进行测试计划跟踪获取以及JMeter压力测试。

    在线支付技术

    完成支付宝的支付接口的在线支付功能。

    电子商务网实战

    采用spring+hibernate+struts+jquery+dwr+FckEditor+tomcat 完成电子商务网站实战开发。

    实战价值

    项目实战价值完全高标准的高要求的迎合企业的需求,学完此课程,全部消化了,你已经就是一个地地道道的高级程序员,已经为你的职业生涯铺平了道路,你还等什么,向着高薪冲刺吧!

     

    第六进阶阶段

    技术名称

    技术内容

    web高级进阶
    (项目实战)

    openJpa技术

    JPA介绍及开发环境搭建、单表实体映射、一对多/多对一、一对一、多对多关联、实体继承、复合主键、JPQL语句、EntityManager API、事务管理,了解一下jpa2.0的新特性以及应用。

    lucene搜索引擎

    了解全文搜索原理、全文搜索引擎、什么是OSEM、OSEM框架Compass、基于使用Lucene使用Compass实现全文增量型索引创建和搜索、探索Lucene 3.0以及API。

    电子商务网重构

    此项目采用了Lucene+compass+openJpa+上一版电子商务网站的技术进行重构。

    实战价值

    此项目的实战价值是前所未有的超值,已经超越了企业的实际要求,你已经是企业的抢手人才,一旦进入企业,便让你立于不败之地,轻松成为公司的技术骨干和精英,技术已经改变了你一生!

    Excel/PDF文档处理技术

    java对excel和pdf文档分别利用poi和itext来进行解析和生成。此技术在企业级系统的报表中经常使用。

    OA工作流技术JBPM

    工作流是什么、JBPM介绍、JBPM的主要用法、各类节点的用法、任务各种分派方式、JBPM的整体架构原理、工作流定义模型分析、运行期工作流实例模型分析、数据库表模型分析、流程定义管理、流程实例监控、对JBPM的相关接口进行封装,构建自己的工作流应用平台等。

    WebService技术

    WebService技术原理、WebService技术的应用、Soap服务的创建与管理、WSDL描述文档规范、UDDI 注册中心运行原理;使用Axis和Xfire创建WEB服务、Webservice客户端的编写、使用TCPMonitor监听SOAP协议、异构平台的整合。

    Linux技术

    Linux 系统安装,卸载、linux 使用的核心思想、linux下的用户管理,文件管理,系统管理、程序的安装,使用,卸载。linux下作为server的基本应用:web服务器,j2ee服务器,ftp服务器的安装和项目的部署。

    CRM项目实战

    此项目能了解和熟悉客户关系管理的基本流程以及功能的实现,采用上面几个阶段学到的主流框架实现,同时加入了JBPM的技术。

    实战价值

    学完这个系统会让你轻松进入企业级的大型项目的开发,倍感得心应手。完备的知识体系和最前沿的开发技术,带给你的将是在精神上不同目光的瞻望和物质上高薪资回报的喜悦,带你进入人生的新的转折点和起点!

     

    第七架构阶段

    技术名称

    技术内容

    大型高并发网站优化方案
    (项目实战)

    如何构建一个高性能网站详解

    什么样的网站需要高性能,高性能的指标体系,构建高性能网站需要做哪些工作,注意哪些细节。

    SSI技术

    什么是SSI,使用他有什么好处,什么样的系统才使用SSI,SSI技术详解和使用,应用到项目中。

    生成静态页技术

    什么是静态页,为什么需要静态页以及带来的好处,生成静态页的模版技术Velocity和Freemark,生成静态页的访问规则等。

    缓存技术

    为什么使用缓存技术,oscache缓存技术的介绍和使用,memcached缓存技术的介绍和使用、两者缓存技术的比较和如何去使用。

    经典web服务器

    什么是web服务器,什么是javaweb服务器,他们存在什么关系,当前技术主流中常用的web服务器有哪些, web服务器apache和nginx的应用。

    nginx架构实战

    什么是反向代理,负载均衡以及集群,在nginx中如何实现这些高性能的系统架构。

    实战价值

    此课程已经将你领入了技术经理和主管以及架构师的门槛了,稍微用心学习加上实战你就是技术牛人了,薪水非常高,同时很快你就是公司的技术中层管理者,你的人生就此又一次的发生巨大的转折!

      如果你把上面这些东西全部掌握了,那不用说你已经算是java界比较NB的人了,因为一般能掌握这些知识的人,基本上有5-10年的工作经验,不过也不好说,说不定你就是那个天才呢,加油吧少年!

    展开全文
  • Java后台学习路线

    2019-06-08 09:41:37
    2018.11.10更新,请看文章末尾惊喜或者点击 https://blog.csdn.net/qq_40374604/article/details/83932163 本文摘自---... ①一段摘自知乎的文档 Java就业方向目前主要方向为...

     2018.11.10更新,请看文章末尾惊喜 或者点击    https://blog.csdn.net/qq_40374604/article/details/83932163

     

    本文摘自---https://blog.csdn.net/u014624241/article/details/52946378---感谢作者的分享

     

    一段摘自知乎的文档

    Java就业方向目前主要方向为Android和Java Web。就题主而言,估计是想深造Java Web方向。 
    首先我得佩服你选这个方向,这条道需要掌握的知识多如牛毛。我暂且假定题主拥有良好的Java SE基础了。 
    1.首先你需要学习的是Servlet/JSP方面。虽然这一块的知识不算太多,但比较重要,会为你以后的Web方向深入打好基础,特别是Servlet。这其中会包含许多你也许从没接触过的Web知识,像Cookie、Session等,一定要深入理解Web服务器,不能光靠背。 
    2.在这里,不得不说的将是前端问题。HTML、css、JavaScript这三个你是要学习的。JSP页面说白了就是将静态页面修改后转换过去的。不然你不知道改哪里,何来开发之说。当然你不需要有多精通前端,会用就行。如果你想要成为一名Full Stack开发人员就另当别论了。 
    3.说实话,JDBC也是相当重要的一部分知识。这又会牵扯到数据库的知识。我建议你掌握MySql数据库和SQL语法,这是必须要会的。没有数据库的程序我很难想象。你得会建立数据表,懂得如何查询,懂得如何书写JDBC代码。 
    4.把以上掌握了,Web方向就算入行了。但当你写熟了就会发现这好麻烦啊,于是你又要去学习各种框架。Spring、Hibernite、Struts……这算是比较深入的知识了。 

    总之,希望题主能坚持学下去,终有所成。吾生也有涯,而知却无涯!

    servlet---jsp---jdbc学习总结

    请看顶部链接

     

    1.struts

    Struts的含义是”支柱,枝干”,它的目的是为了减少程序开发的时间,项目的创建者认为JSP,servlet的存在虽然可以帮助用户解决大部分问题,但是由于它们的编码对项目的开发带来了许多的不方便,可重用性也差,所以struts应运而生,帮助用户在最短的时间内解决这些问题。Struts框架提供如下服务: 
    (1)作为控制器的Servlet。 
    (2)提供大量的标签库。 
    (3)提供了用于国际化的框架,利用不同的配置文件,可以帮助用户选择合适自己的语言。 
    (4)提供了JDBC的实现,来定义数据源和数据库连接池。 
    (5)XML语法分析工具。 
    (6)文件下载机制。 
    struts旅程(二)Struts登录示例

    2.spring

    2.1spring框架学习(一)

    轻量级的容器框架没有侵入性 
    使用IoC容器更加容易组合对象直接间关系,面向接口编程,降低耦合 
    Aop可以更加容易的进行功能扩展,遵循ocp开发原则 
    创建对象默认是单例的,不需要再使用单例模式进行处理

    2.2spring框架学习(二)依赖注入

    spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入。
    
    • 1
    • 2

    3.hibernate

    Hibernate框架学习(一 ) 
    hibernate框架主要是实现数据库与实体类间的映射,使的操作实体类相当与操作hibernate框架。 
    只要实体类写好配置文件配好,就能实现和数据库的映射,其中实体类对应表,类的属性对应数据库的表字段。 这样就不用管数据库的相关操作了。 
    Hibernate框架学习(二) 
    框架提供了三种主键生成方式,一种是由用户自己维护,一种是由hibernate框架维护,另一种是由数据库维护。 
    自己维护就是在插入数据的时候,一定要指定主键的值,否则会出错,如果由框架维护和由数据库维护,则主键的值不需要我们给,它们自动会给我们填上。 
    主键的生成方式在对应的.hbm.xml文件中主键字段id标签中指定。 
    Hibernate框架学习(三) 关系映射 
    hibernate中关系映射指的是实体类与实体类间的关系。和数据库中表与表之间的关系类似,有一对一,多对一,一对多,多对多四种映射关系。

     

    ----------------------------------------------------------

    本文不用于任何商业利益,单纯学习,如有侵权,请及时联系本人

    更多web程序,demo公众号自取(-_-);

     

     

    ------------------------------------------------------------------------

    视频及代码资源:https://blog.csdn.net/qq_40374604/article/category/8331552

    你想要的资料:https://github.com/wangshiyu777/wangshiyu/blob/master/src/resource.md

    ------------------------------------------------------------------------

    展开全文
  • 2017年06月05日 14:48:20 行者无域 阅读数:3412 标签: java后台学习路线 更多 个人分类: 学习路线 ​对于Java程序猿学习的建议 这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,...

    Java后台开发学习进阶路线
      转自:https://blog.csdn.net/wjlgdut/article/details/72867256

    这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是LZ你是如何学习Java的,能不能给点建议?

    今天LZ是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。

    在大家看之前,LZ要先声明两点。

    1、由于LZ本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。

    2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。

    第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。

    一、Java基础

    首先去找一个Java的基础教程学一下,这里可以推荐一个QQ群:523047986 里边有大量基础视频教程。

    学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。

    学完以上内容以后,你应该对Java有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。

    这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。

    二、Web开发

    等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。

    这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及MySQL(数据库)相关的知识。

    它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。

    接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。

    当你下载安装好eclipse以后,请视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频,因此推荐给大家。当然了,LZ本人并没有看过他的视频,所以不好说的太绝对,如果大家自己有更好的选择,可以坚持自己的,不要被LZ干扰。

    原本LZ也是打算出教学视频的,但是由于时间问题,还是决定放弃了。但是如果你看视频的过程中遇到了问题,欢迎来LZ的交流群提问,或者去斗鱼观看LZ的直播提出你的问题,直播地址和群号都在LZ的个人博客左侧。

    最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

    三、开发框架

    当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。

    目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。

    还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

    关于学习SSM框架的地址给大家推荐一个,这里面有视频,大家可以去观看,地址是http://edu.51cto.com/lesson/id-76468.html。

    四、找工作

    当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。

    上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西,网络是你最重要的老师。

    第二部分:对于参加工作一年以内的同学。

    恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。

    但是加班不代表你就可以松懈了,永远记得LZ说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。

    这本书很厚,当初看这本书,LZ花了整整三个月。正常速度的话,应该可以在半年左右看完。LZ这里不要求过高,只要你在一年以内把这本书看完即可。当然了,LZ所说的看完,是充分吸收,而不是读一遍就完事了,因此有些内容你可能会看不止一遍。

    总而言之,这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。

    第三部分:对于参加工作1年到2年的同学。

    这部分时间段的同学,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。

    于是这个时候,设计模式就来了。LZ当时看的是《大话设计模式》这本书,并且写了完整版的设计模式博客。因此,LZ要求大家,最多在你工作一年的时候,必须开始写博客,而设计模式就是你博客的开端。

    请记住,LZ所提的基本都是最低要求,因此不要有任何松懈的心理,否则五年后,你不要去羡慕别人高于你的工资,也不要去羡慕别人进入了某公司。

    这一年,你必须对于设计模式了如指掌,《大话设计模式》可以作为你的开端。当然了,你也可以去看LZ的个人博客去学习,地址是http://www.cnblogs.com/zuoxiaolong/p/pattern26.html。

    此外,设计模式并不是你这一年唯一的任务,你还需要看一些关于代码编写优化的书。比如《重构 改善既有代码的设计》,《effective java》。

    总而言之,这个阶段,你的核心任务就是提高你的代码能力,要能写出一手优雅的代码。

    第四部分:对于参加工作2年到3年的同学

    有的同学在这个时候觉得自己已经很牛逼了,于是忍不住开始慢慢松懈。请记住,你还嫩的多。

    这个阶段,有一本书是你必须看的,它叫做《深入理解Java虚拟机》。这本书绝对是Java开发者最重要的书,没有之一。在LZ眼里,这本书的重要性还要高于《Java编程思想》。

    这本书的内容是帮助你全面的了解Java虚拟机,在这个阶段,你一定已经知道Java是运行在JVM之上的。所以,对于JVM,你没有任何理由不了解它。LZ之前有写过JVM系列的知识,可以去看一下,地址是http://www.cnblogs.com/zuoxiaolong/category/508918.html。

    另外,在过去2年的工作当中,你肯定或多或少接触过并发。这个时候,你应该去更加深入的了解并发相关的知识,而这部分内容,LZ比较推荐《Java并发编程实战》这本书。只要你把这本书啃下来了,并发的部分基本已经了解了十之六七。

    与此同时,这个阶段你要做的事情还远不止如此。这个时候,你应该对于你所使用的框架应该有了更深入的了解,对于Java的类库也有了更深入的了解。因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。

    这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余?

    由此也可以看出,这些学习的过程是环环相扣的,如果你任何一个阶段拉下来了,那么你就真的跟不上了,或者说是一步慢步步慢。而且LZ很负责的告诉你,LZ在这个阶段的时候,所学习的东西远多于这里所罗列出来的。因此千万不要觉得你已经学的很多了,LZ所说的这些都只是最低要求,不光是LZ,很多人在这个时间段所学习的内容都远超本文的范围。

    如果你不能跟上节奏的话,若干年后,如果不是程序猿市场还不错的话,你很可能不仅仅是工资比别人低,公司没别人好,而是根本就找不到工作。

    总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容),也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。

    另外,还有一种学习的方式,在2年这个阶段,也应该启用了,那就是造轮子。

    不要听信那套“不要重复造轮子”的论调,那是公司为了节省时间成本编造出来的。重复造轮子或许对别人没有价值,因为你造的轮子可能早就有了,而且一般情况下你造出来的轮子还没有现存的好。但是对别人没有价值,不代表对你自己没有价值。

    一个造轮子的过程,是一个从无到有的过程。这个过程可以对你进行系统的锻炼,它不仅考察你的编码能力,还考察你的框架设计能力,你需要让你的轮子拥有足够好的扩展性、健壮性。

    而且在造轮子的过程中,你会遇到各种各样的难题,这些难题往往又是你学习的契机。当你把轮子造好的时候,你一定会发现,其实你自己收获了很多。

    所以,这个阶段,除了上面提到的了解JVM、JDK和框架源码以外,也请你根据别人优秀的源码,去造一个任何你能够想象出来的轮子。

    第五部分:参加工作3年到4年的同学

    这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。

    因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。

    而且在研究一门新技术时,切忌朝三暮四。有的同学今天去整整大数据,搞搞Hadoop、Hbase一类的东西。过不了一段时间,就觉得没意思,又去研究分布式缓存,比如Redis。然后又过不了一段时间,又去研究分布式计算,比如整整Mapreduce或者storm。

    结果到最后,搞得自己好像什么都会一样,在简历上大言不惭的写上大数据、分布式缓存、分布式计算都了解,其实任何一个都只是浮于表面。到时候面试官随便一问,就把你给识破了。

    一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。

    因此在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。

    差异性相信不难理解,就是让你自己变得与众不同。你前面三年的学习足够你成为一名基本合格的Java开发者,但你离成为一名优秀的Java开发者还有很大的距离。

    所谓优秀,即能别人所不能。而你前三年所学习的内容,是很多做过几年的Java开发都能够掌握的。那么为了让自己有差异性,你就需要另辟蹊径,找一个方向深入研究下去,以期在将来,你能够成为这个领域的专家,比如分布式计算领域的专家,大数据领域的专家,并发领域的专家等等。

    此外,你除了建立你的差异性之外,还要去弥补你基础上的不足,直到现在,LZ都没有提及基础知识。原因是基础是很枯燥无味的,学的太早不仅容易懵逼,而且懵逼的同时还容易产生心理阴影,以至于以后再不想去研究这些基础。但基础又是你深入研究一些领域时所必须掌握的,比如你去研究分布式计算,你不懂算法你玩个毛毛?比如你去做分布式缓存,你对计算机系统的内存不了解,你如何去做缓存?

    如果你的基础本来就非常强,那么恭喜你,相信你在之前的工作中已经充分体会到了这些基础对你的帮助。但LZ相信大部分人的基础都很薄弱,哪怕是科班毕业的人,很多人也不敢说自己当初的基础学的多么强大,比如算法、计算机系统原理、编译原理这些。

    但是每个人时间都是有限的,而且这些基础的书籍每一本读下来,没个一年半载的,还真拿不下来,因此还是要有所抉择的。虽然艺多不压身,但问题是艺多是有代价的,是需要你付出时间和精力的,而LZ个人更赞成在同等代价的情况下获取最大的收获。

    首先,LZ比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。

    这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。

    另外,LZ要强调的是,这里所说的适合,并不是其它两本对你就没有用。比如你做Java Web和APP后端开发,《tcp/ip详解 卷一、二、三》这本书对你的作用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那当然最好不过了。但如果时间有限的话,那么就先挑对你帮助最大的书去读。

    理论上来讲,这一年你能把这三本其中一本精读下来,就已经非常厉害了。有了基础,有了前面的工作经验,你就可以去开拓属于你的领域了。

    在这一年里,一定要规划好自己的领域,建立好自己的优势,制造出差异性。如果你对自己的领域不够清晰的话,随着你工作的时间日益增多,你接触的技术会越来越多,这个时候,你很容易被淹死在技术的海洋里,看似接触的技术越来越多,会用的也越来越多,但你毫无优势。

    有的同学可能会问,“LZ,我也不知道我的领域是什么啊?怎么办呢?”

    对于这种人,LZ只想说,“卧槽,这还问我?要不干脆我替你学习得了,好不好?”

    第六部分:参加工作4年到5年的同学

    经过前面一年的历练,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。

    这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。这次的开源项目不同于之前的造轮子,你这个时候是真的要去尽量尝试造出来真正对别人有价值的轮子。

    技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。

    这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。程序猿在某种程度上和明星很像,一个好的电视剧和电影就可以成就一批明星,程序猿有的时候也是,一个好的项目就可以成就一群程序猿。

    比如国内几个脍炙人口的项目,像淘宝、支付宝、QQ、百度、微信等等。这每一个项目,都成就了一批程序猿。LZ敢说,这里面任何一个项目,如果你是它的核心开发,光是这样一个Title,就已经是你非常大的优势。更何况还不止如此,Title说到底也是个名头,更重要的是,这种项目在做的时候,对你的历练一定也是非常给力的。

    而你如果想要参与这样的项目,除了靠运气之外,影响力也是很重要的一个手段。比如你在分布式计算领域有一定的影响力,那么如果有什么好的关于分布式计算的项目,对方就很可能会邀请你。就算人家不邀请你,你自己主动去面试的时候,对方如果知道你在这个领域的影响力,也肯定会起到很大的作用,而这个作用,甚至可能会超过你现在的技术能力。

    所以,在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。

    当然了,LZ现在满打满算,做程序猿也就4年半不到,因此关于4年到5年这一部分,LZ的见解不一定是对的,就算是对的,也不一定是适合任何人的。所以,希望大家自己有的判断力,去决定到底该如何度过这一年。

    结语

    本文到此就基本结束了,整篇文章很长,但其实主要就说了两部分内容,一个是社招面试的准备,一个是Java生涯的学习。

    关于这两部分,LZ已经给出了自己的见解,但是还是那句话,每个人吸收知识的时候,都要有抽取精华,去除糟粕的能力。LZ所说的,可能有些是对的,有些是错的,有些是适合你的,有些是不太适合你的,你要自己能够判断。

    其实你在生活和工作当中也是一样的,你身边的人形形色色,有的人你喜欢,有的人你很讨厌。但其实你喜欢的人也有缺点,你讨厌的人也有优点。你要学会从你讨厌的人身上学会他的优点,千万不要一棒子打死,这只会让你失去很多学习成长的机会。

    好了,说了这么多了,就到此为止吧,希望本文可以帮助到作为程序猿或即将成为程序猿的你。

    展开全文
  • 带领大家借助当下比较流行的springboot框架快速开发属于自己的java后台。即便你是编程小白,没有任何编程基础也可以学习本课程。 知识点 1,Java 2,springboot 3,freemarker 4,bootstrap4.3 5...
  • java后台学习资源汇总

    2019-09-05 00:16:03
    java后台学习资源

    使用某课堂的总结的内容,实现技术的进阶和突破 静下心学习
    在这里插入图片描述

    java后台学习过程中涉及到的技术点比较多,需要我们平时系统性的去学习,这里总结一下比较好的学习的文档资源方便查考

    IDEA

    《IntelliJ-IDEA-Tutorial》:https://github.com/judasn/IntelliJ-IDEA-Tutorial
    特别全的IDEA使用教程,可以学到很多实用的技巧。

    Spring

    《Spring实战(第4版)》:https://book.douban.com/subject/26767354/
    经典的、畅销的Spring学习和实践指南,从此书可以学习到Spring的实用用法,对Spring有个整体的了解,推荐整本阅读。

    SpringBoot

    《Spring Boot实战》:https://book.douban.com/subject/26857423/
    SpringBoot的入门书,一共也就200多页,反正我是看完了,其中关于Groovy和Grails部分大可不看。

    《Spring颠覆者》 https://download.csdn.net/download/zhujohnle/11092172
    附录的有书籍对应的源码,可以方便查考和对比

    MyBatis

    《MyBatis从入门到精通》:https://book.douban.com/subject/27074809/
    很好的一本MyBatis入门书,作者是开源插件PageHelper的项目主,平时忘了MyBatis的一些用法的时候可以当工具书使用,推荐整本阅读

    MySql

    《深入浅出MySQL》:https://book.douban.com/subject/25817684/
    网易DBA写的一本MySql书籍,作为一个开发者,我们只要看第一部分基础篇、第二部分开发篇、第三部分优化篇即可。

    Linux

    《循序渐进Linux(第2版)》:https://book.douban.com/subject/26758194/
    南非蚂蚁写的一本Linux书籍,作为一个开发者,我们只要看第一篇基础知识篇、第二篇服务器搭建篇即可,后面讲到生产环境部署项目会用到。

    Elasticsearch

    《Elasticsearch 权威指南》:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
    Elasticsearch官方推荐的中文学习资料,基于Elasticsearch2.4.x版本,比较老,但是可堪一用。大多数成熟的框架,版本迭代用法相差不会很大。

    《Elasticsearch 技术解析与实战》:https://book.douban.com/subject/26967826/
    如果你觉得上面那本ElasticSearch版本太老的话可以看这本。

    Mongodb

    《MongoDB实战(第二版)》:https://book.douban.com/subject/27061123/
    很好的一本MongoDB实战书,作者参与过MongoDB的驱动开发,感兴趣的可以都看下。

    Docker

    《Spring Cloud与Docker微服务架构实战》:https://book.douban.com/subject/27028228/
    我们只需要看下这本书的Docker部分即可,后面讲到生产环境部署项目会用到。

    持续更新- - -

    展开全文
  • java web后台学习路线

    2020-06-22 00:09:46
    java web后台学习计划 一、基础学习(javajava基础语法 集合 io 多线程 并发 反射 网络编程 java不管你现在学的怎么样,到最后肯定要全部重新温习一遍的。大一下学期java...
  • java后台学习

    2018-04-10 00:04:51
    java后台学习0、基础知识阶段:数据结构、操作系统、计算机网络、计算机组成原理、数据库。一、JavaWeb部分第一阶段:JavaWeb前端技术web前端技术HTML, CSS, JavaScript基础(网页三剑客)新的前端框架react、vue,...
  • Java_后台

    2017-06-12 15:14:02
    Java后台学习 Java后台之路(01)-MySql 数据库定义、控制、操作语言; Java后台之路(02)-MySql 数据库查询语言; Java后台之路(03)-MySql 数据的完整性、约束、表关系; Java后台之路(04)-JDBC 数据库管理工具; ...
  • 转载请注明 Rodert博主 -------- https://blog.csdn.net/qq_40374604/article/list/1 初学小白博主,持续更新,欢迎关注 相关jar包:链接:... SSM------Spring-SpringMVC-MyBatis Spring...
  • java后台之路,day01,基础回顾
  • 最近计划学习Java后台,因为最近接了私活的问题,好多都要Java后台和前端一起做。平常我在做什么,当然是忙着赚钱了 除了敲代码,你还有什么副业吗?接了活自己还要找开发Java后台开发的,为什么我自己不会呢,会了...
  • 最近打算学一下java后台,在此记录一下自己学习java后台的流程图还有mark; 最近几天把java基础复习了一下,对于java基础应用于开发后台还是没有问题的; 学习javaEE 首先要学习数据库,我学的数据库是 很简单 ...
  • 分享6个国内优秀Java后台管理框架的开源项目,建议收藏!Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台...
  • 导读 最近听到一个真实的事,就是一个Android开发,前端、后端和Android都做过,已经快35了,要20K都没人要。这其实是一个悲哀,究其原因不是岁数大了,而是岁数大了却没有一个能拿的出手的技术栈。...
  • java 后台开发流程

    2015-06-23 15:22:49
    这篇文章为了奠基一下被我打入冷宫两个月左右的iOS开发,因为之前由于iOS项目停止的原因,被调至后台开发,两个月中也学习到了很多关于java、sql、js、jsp的内容,感谢我的同事悉心指教! eclipse(编程工具)+navicat...
  • 学习Java好书及视频推荐 要想在java领域成为大牛,除了不断进行项目实战以外,还要不断的进行进修和学习,以下将本人学习java多年使用的好书和一些好的视频推荐给大家,这些书和视频都是本人在网络找了很久,后来...
  • JAVA后台要学哪些

    2016-10-27 16:00:37
    Java就业方向目前主要方向为Android和Java Web。就题主而言,估计是想深造Java Web方向。 首先我得佩服你选这个方向,这条道需要掌握的知识多如牛毛。我暂且假定题主拥有良好的Java SE基础了。 1.首先你需要...
  • Java后台开发知识一览

    2018-07-18 19:39:09
    Java后台开发知识一览 1、后端 WEB服务器:Weblogic、Tomcat、WebSphere、JBoss、Jetty 核心框架:Spring Framework 分布式服务框架 Dubbo(感谢@浅浅浅丿忧伤指正) 安全框架:Apache Shiro 视图框架:Spring...
1 2 3 4 5 ... 20
收藏数 126,559
精华内容 50,623