精华内容
下载资源
问答
  • java和Oracle学习安排

    2011-01-13 11:25:12
    1 java学习 通过视频,学习一些项目和编程技巧,并打好基础 做好学习笔记 看一些开源项目的源代码 2 Oracle学习 视频学习基础,和做好笔记 在看一些比较专业的书籍,做好实验 一定不能再去参加培训 ...

    1 java学习

    • 通过视频,学习一些项目和编程技巧,并打好基础
    • 做好学习笔记
    • 看一些开源项目的源代码
    2 Oracle学习
    • 视频学习基础,和做好笔记
    • 在看一些比较专业的书籍,做好实验
    • 一定不能再去参加培训

    3 Linux学习

    • 用一个星期的时间学习,并做好笔记
    • 在Linux下面搭建好开发环境
    4 android开发
    • 用一个星期的时间学习
    总的学习目标和方法
    • 将java和java EE相关知识掌握,并熟悉项目的开发(主要通过视频学习)
    • 巩固java的基础知识,主要通过thinking in java和开发Oracle数据库工具来完成
    • 学习Oracle的各方面,包括Linux的使用
    • 每个知识都要做实验并写好总结和笔记(主要是mind和博客)
    今后的主要事情就是用博客记录学习笔记
    展开全文
  • Java学习作息时间

    2009-10-20 00:57:01
    作息时间安排: 上午: 7:00(严格执行) 起床 7:00~7:10 洗漱 7:10~7:30 适当的锻炼身体,强度不要太大 7:30~9:30 学习英语 ...
    作息时间安排: 
                上午:                 
                7:00(严格执行)      起床 
                7:00~7:10           洗漱 
                7:10~7:30           适当的锻炼身体,强度不要太大 
                7:30~9:30           学习英语 
                9:30~11:30          学习Java语言 
                11:30~12:00         看课外书 
                下午: 
                12:00~14:30         看课外书 
                14:30~17:30         学习英语时间 
                17:30~19:30         学习Java语言  
                晚上: 
                19:30~01:30         学习Java语言 
                01:30~02:00         写当天学习总结和第二天的学习计划
                02:00~07:00         晚休时间  
    
    
    
                上述作息时间表严格执行  
    展开全文
  • JAVA学习计划

    2020-10-15 21:36:39
    JAVA学习计划 1、做计划,并同时写博客 在四个月的时间里,我首先按照Java后端路线图(两个图结合着参考学习)安排好复习计划,每个知识点都安排一段时间。比如我可能花一天时间复习“Java反射”,两天时间复习...

    JAVA学习计划
    1、做计划,并同时写博客

    在四个月的时间里,我首先按照Java后端路线图(两个图结合着参考学习)安排好复习计划,每个知识点都安排一段时间。比如我可能花一天时间复习“Java反射”,两天时间复习“设计模式”,一周的时间用于复习"JVM虚拟机”。我一般会在月初做好整个月的计划,然后根据进度做一些微调。

    2、“写博客整合知识点”

    3、做项目,也刷算法

    跟着牛客网的项目课做了,这两个项目都使用SpringBoot快速开发,并且用到一些常用的后端技术比如redis,云存储,以及一些常见Web框架,除此之外还涉及到了solr,爬虫等技术。虽然项目不算很难,但是我在这段时间里很快地熟悉了完整项目开发的流程,并且每天做迭代,通过Git来跟进版本,每个版本都会写清所做的内容,这也让我对项目的架构非常熟悉。
    在项目之余,我也找一些常用的后端组件来跑一跑demo,以便让我对这些技术有一个直观的了解,比如面试常问的dubbo,zookeeper,消息队列等组件。这些尝试也让我在理解它们的原理时更加得心应手了。)

    4、“坚持刷题,注重方法”

    首先我重新刷了一遍剑指offer,并且对每道题目进行总结,尽量保证每一道题都可以记在脑子里,众所周知剑指offer中的题是面试时非常喜欢考的,所以先搞定这部分题目是最为关键的。
    搞定剑指offer之后,当然还要刷LeetCode了,LeetCode题目这么多,怎么选择呢,我没有按照tag刷,也没有按照顺序刷,而是参考当时一个大佬的LeetCode刷题指南来进行刷题的,他把每个类型的题目都做了归纳,每部分只放一些比较经典的题目。所以我前后大概刷了100多道LeetCode的题目,并且在第二遍刷题复习的时候,我也对这些题目做了一份总结。

    除了上面两个经典题库,我还着重刷了大厂的历年真题,这部分我主要是通过牛客网的历年真题题库来完成刷题的。说实话,真题是非常重要的,因为公司出的题目不像平时的那些算法题,可能会出得非常奇葩,所以你如果不提前适应的话会比较吃亏。完成这部分题目之后,我对算法题的复习也基本告一段落了。

    算法第四版:入门书籍,非常好。

    算法主要靠刷题, 剑指offer应对面试手撕代码,刷几遍不重要,重要是理解,熟练。
    leetcode刷题。leetcode刷题顺序看自己,可以按照tag刷,可以刷leetcode前两页,或者前150题。一天两道题,早日成为大佬。我是按照一个大佬的顺序刷的 。 https://github.com/CyC2018/CS-Notes。
    慕课网也有一些算法视频,可以看下。—玩转算法视频leetcode分门别类详细解析

    (1)、Java基础

     Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外, 必须弄懂它的oop特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如Spring核心的Ioc和AOP,都用到反射,而且Java自身的动态代理也是利用反射实现。此外还有Java一些标准库也是非常常见,比如集合、I/O、并发,几乎在WEB并发中无处不在,也是面试经常被问到的,所以在自学 Java 后端之前,不妨先打好这些基础,另外还有 Java8 的一些新特性,也要重点关注,比如 Lambda 表达式、集合的 Stream 流操作、全新的 Date API 等等。
    
     java基础+java集合+java并发多线程+java I/O+jvm
    
     推荐书籍:疯狂java讲义+java并发编程的艺术+深入理解java虚拟机
    
    另外我发现看书的效率很低,所以我一般结合视频来复习,比如 java并发编程的艺术,这本书作为多线程复习还是不错的,B站有马士兵多线程的视频。深入理解java虚拟机这本书,其实没有必要全部看完,应对面试看第二章(java内存区域介绍),第三章(垃圾收集算法和回收策略)第七章(类加载机制) 第12,13章(java内存模型与线程+线程安全与锁优化,这部分可以和多线程结合看一下)。
    
     「Java 编程思想」这本书是Java界的圣经,但是才开始不推荐学习,我在这里推荐你们一开始先看「Java 核心技术」,这本书讲得比较通俗易懂,初学者比较能接受。关于视频推荐,推荐毕向东老师讲的Java基础教程。
    

    (2)、数据库

    关于 sql 方面:MySQL 教程(http://www.runoob.com/mysql/mysql-tutorial.html)
    
         了解一些基础语法之后,就直接跟着视频的老师做一些表操作实战练习,比如单表查询、多表查询等。需多加练习,不要只看懂了就行,因为工作中写得一手简练的 sql 是非常重要的。在项目一直秉承着 sql 语句是能避免多表查询就避免多表查询,能够分开多条语句就分开多条语句,因为这里涉及到多表查询性能和数据库扩展的问题。       
    
         mysql必知必会:入门书,可以快速浏览一遍
    
    
        高性能mysql:这本书比较厚,可以当做查阅书,边学习边看。
    

    关于 JDBC 方面:JDBC 教程(https://www.yiibai.com/jdbc/)、 JDBC 获取连接对象源码分析(http://objcoding.com/2017/07/03/JDBC/)

        需要弄懂 JDBC API 的用法,其实它只是一组规范接口,所有数据库驱动只要实现了 JDBC,那么就可以通过标准的 API 调用相应的驱动,完全不用知道驱动是怎么实现的,这就是面向接口编程的好处。而且对于 JDBC 可以直接看视频去理解的,跟着视频做了一个基于 Apache Dbutils 工具做了一个具有事务性的小工具,我特意用思维导图总结了一下:
    

    jdbc-utils源码地址:jdbc-utils(https://github.com/objcoding/jdbc-utils)

    (3)、Web基础

        曾经开源中国创始人红薯写了一篇文章「初学 Java Web 开发,请远离各种框架,从 Servlet 开发」,我觉得他说的太对了,在如今 Java 开发中,很多开发者只知道怎么使用框架,但根本不懂 Web 的一些知识点,其实框架很多,但都基本是一个套路,所以在你学习任何框架前,请把 Web 基础打好,把 Web 基础打好了,看框架真的是如鱼得水。
    
      关于 Http 协议,这篇文章就写得很清楚:Http协议(https://www.cnblogs.com/ranyonsue/p/5984001.html)
    
      关于 Web 基础这方面数据推荐,我当时是看的是「Tomcat 与 Java Web 开发技术详解」,很详细地讲解了整个 Java Web 开发的技术知识点,但现在看来,我觉得里面讲的有一些技术确实有点老旧了,不过可以了解一下 Java Web 开发的历史也是不错的。所以在 Web 基础这方面我都是看某客的崔老师讲的「超全面 Java Web 视频教程」,讲得很详细很生动,还有实战项目!
    
     关于 JSP,你只要了解它其实就是一个 Servlet 就行了,关于它的一些标签用法,我认为可以直接忽略,因为现在互联网几乎没哪间公司还用 JSP,除了一些老旧的项目。现在都是流行前后端分离,单页应用,后端只做 API 接口的时代了,所以时间宝贵,把这些时间重点放在 Servlet 规范上面吧。
    
     关于 Tomcat,它是一个 Web 容器,我们写的后端项目都要部署到Web容器才能运行,它其实是一个遵循 Http,通过 Socket 通信与客户端进行交互的服务端程序:Tomcat结构及处理请求过程(http://objcoding.com/2017/06/12/Tomcat-structure-and-processing-request-process/)
    

    (4)、Web 主流框架

    Java Web 框架多如牛毛,等你有一定经验了,你也可以写一个 Web 框架,网上很多说 Spring、Struts2、Hibernate 是 Java 三架马车,我只想说,那是很久远的事情了,我严重不推荐 Struts2、Hibernate,相信我,一开始只需要上手 Spring、SpringMVC、Mybatis 就可以了,特别是 Spring 框架,其实 Spring 家族的框架都是很不错的。
    

    但是提醒一点就是,千万不要沉迷于各种框架不能自拔,以会多种用法而沾沾自喜,导致知其然而不知其所以然。

    Spring其核心思想就是 IOC 和 AOP:

    谈谈对 Spring IOC 的理解(https://blog.csdn.net/qq_22654611/article/details/52606960/)
    
    Spring 面向切面编程(http://objcoding.com/2017/08/25/Spring-AOP/)
    

    SpringMVC 它的思想是全部请求统一用一个 Servlet 去做请求转发与控制,这个 Servlet 叫 DispatcherServlet:

    SpringMVC 初始化过程(http://objcoding.com/2017/06/14/SpringMVC-initialization-process/)
    

    SpringMVC 处理请求过程(http://objcoding.com/2017/06/15/SpringMVC-processing-request-process/)

    Mybatis 它可实现动态拼装 sql,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集:

    mybatis 入门教程(http://www.mybatis.org/mybatis-3/zh/index.html)

    Mybatis 深入浅出系列(http://www.cnblogs.com/dongying/tag/Mybatis%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BA%E7%B3%BB%E5%88%97/)

    (5)、Web 框架进阶

    使用了 SSM 框架后,你会觉得框架也不过这么回事,如果你对 Spring 有过大概了解,你也会产生想写一个「山寨版」Spring 的心思了,一个轻量级 Web 框架主要具备以下功能:

    可读取用户自定义配置文件,并以此来初始化框架;
    具备 Bean 容器,管理项目的类的对象生命周期;
    具备依赖注入,降低类之间的耦合性;
    具备 AOP 功能,使项目可进行横向编程,可不改变原有代码的情况增加业务逻辑;
    具备 MVC 框架模式。
    其实除了 SSM 之外,Web 框架可谓是百家齐放,其中以 Spring 全家桶最为耀眼,在这里我极力推荐两个 Spring 家族框架:SpringBoot 和 SpringCloud。

    SpringBoot 弥补了 Spring 配置上的缺点,再也不用为繁杂的 xml 费劲精力了,堪称是 Java 后端开发的颠覆者,推荐书籍「Java EE 开发的颠覆者:SpringBoot实战」

    SpringBoot 构建 web 项目(http://objcoding.com/2017/05/03/SpringBoot/)

    SpringBoot 自动化配置源码分析(http://objcoding.com/2018/01/30/The-principle-of-Spring-Boot-automation-configuration/)

    自定义 SpringBoot Starter(http://objcoding.com/2018/02/02/Costom-SpringBoot-Starter/)

    spring-boot-starter-tutorial(https://github.com/objcoding/spring-boot-starter-tutorial)

    SpringCloud 是一个微服务架构,能够将项目按照业务分成一个个微服务,每个微服务都可独立部署,服务之间互相协调。当一个项目越来越大时,随之而来的是越来越难以维护,此时将项目拆分成若干个微服务、单独维护、单独部署,也可以降低项目不同业务间的耦合度。推荐书籍「Spring Cloud 与 Docker 微服务架构实战」,这本书将 Docker 与微服务完美地结合在一起,堪称完美!

    Spring Cloud 中文官网(https://springcloud.cc/)

    史上最简单的 Spring Cloud 教程(https://blog.csdn.net/forezp/column/info/15197)

    我写的有关于 Spring Cloud 的博客:

    SpringCloud微服务架构之服务注册与发现(http://objcoding.com/2017/05/07/SpringCloud(1)/)

    SpringCloud微服务架构之服务消费者(http://objcoding.com/2017/05/10/SpringCloud(2)/)

    SpringCloud微服务架构之断路器(http://objcoding.com/2017/05/15/SpringCloud(3)/)

    SpringCloud微服务架构之服务网关(http://objcoding.com/2017/05/20/SpringCloud(4)/)

    (6)、其他技术

    Redis:一个高性能的 key-value 数据库,当有并发量很高的请求时,将数据缓存在 Redis 中,将提高服务器的响应性能,大大减轻数据库的压力。

    redis 中文官网(http://www.redis.cn/)

    redis 教程(http://www.runoob.com/redis/redis-tutorial.html)

    Redis设计与实现:这本书基本是Redis讲的最好的,可以结合B站视频学习。

    Git:世界上最先进的分布式版本控制系统,建议所有初学者从命令行开始使用 Git!

    Git 官网(https://git-scm.com/)

    最全 Git 教程(https://git-scm.com/book/zh/v2)

    Git 的一些常用命令(http://objcoding.com/2017/08/12/Git/)

    Maven:一个用于构建项目的工具,将项目间的依赖通过 xml 完美地组织到一起,可通过编译插件将项目编译成字节码文件。还有类似的 Gradle 也是不错的选择。

    maven 的 pom.xml 文件详解(http://www.cnblogs.com/hafiz/p/5360195.html)

    Linux:至少要求常用的命令会用,能够在 linux 环境下部署项目。

    Linux 命令大全(http://man.linuxde.net/)

    最全的 SSH 连接远程终端教程(http://objcoding.com/2017/10/31/The-most-complete-SSH-connection-remote-terminal-tutorial/)

    鸟哥的linux私房菜:了解常用命令。

    Docker:简直是项目部署神器啊,来不及解释了,看我 Docker 系列博客,开启 Docker 之旅吧!推荐书籍「Docker 技术入门与实战」,中国首部 Docker 著作!

    Docker 实战(一)(http://objcoding.com/2017/12/01/Docker(1)/)

    Docker 实战(二)(http://objcoding.com/2017/12/07/Docker(2)/)

    Docker 实战(三)(http://objcoding.com/2018/02/06/Docker(3)/)

    docker-deploy-tutoria(https://github.com/objcoding/docker-deploy-tutorial)

    (7)、开发工具

    工欲善其事,必先利其器,以下是我推荐的一些开发工具:

    Intellij IDEA:Java 开发最好的 IDE,这个是公认的,我一开始是用 Eclipse 的,后来用了 Intellij IDEA,才发现 Eclipse 就是一坨屎,所以我以过来人劝你们不要使用 Eclipse,直接 Intellij IDEA!

    IntelliJ IDEA 使用教程(http://www.phperz.com/special/83.html)

    Iterm2:macOS 最好用的终端!

    Iterm2 使用指南(https://wdxtub.com/2016/03/20/iterm2-guide/)

    Chrome:人生苦短,请用 Chrome,来不及解释了,快上车!

    Postman:很好用的一个接口调试工具。

    Postman 官网(https://www.getpostman.com/)

    (8)、设计模式、

     一直觉得设计模式可以和Java基础一块学,所以把它放在这里。当然,一些真正使用到设计模式的地方,譬如JDK的集合类,IO流等等,也需要足够重视。
    
    HeadFirst 设计模式:重点了解单例模式,工厂模式,观察者模式,等等,可以看看B站视频
    

    (9)、Jvm基础与调优

     JVM是提供Java程序运行的一个进程,学习JVM知识,也是我们的必经之路。除了看懂《深入理解jvm虚拟机》以外,我们还要学习的内容就是JVM调优,使用合适的工具诊断问题,最后解决问题。
    

    这部分内容在面试中呈现的不仅仅是GC,内存分区,以及类加载器,也包括了我所说的JVM调优问题。
    (10)、数据相关

      关系数据库Mysql
          这个不必多说,人手都要会,不管是基础的crud,索引,抑或是进阶的存储引擎,分布式方案等,我们都需要对应掌握。
    
      缓存
          如Redis,memcache一类的缓存,作为后端开发者的我们也需要对应掌握,当然,它们的高级特性,以及分布式方案,也是必备的知识点。
    
     搜索引擎
          基于Lucene的solr,elasticsearch这类搜索引擎,本质上也是数据源,但是并不是后端必备的内容,不过学一学也没有坏处啦。
    
    大数据
          海量数据处理的场景越来越多,大数据技术如hadoop,storm等也越来越火,但是大数据应用一般会由专业的大数据工程师来做,所以我们学一些基本内容也就足够了。
    

    (11)、算法和数据结构

      算法一直是校招同学面前的一座大山,作为后端同学来讲,除了基本的数据结构算法以外,也要会一些高级的算法,譬如dp,搜索,贪心等等。
    
     另外,通过LeetCode等题库来刷题的方式来巩固算法也是公认的好办法了。
    

    (12)、分布式

        最后一个部分,也是内容最多,覆盖面最广泛的部分了。分布式相关的技术实在太多了,我们这里也会做一下简单的归纳。
    
        web架构
           先了解web架构的发展会对分布式的学习有更好的理解,毕竟架构的发展也对应着分布式技术的发展。
    
       分布式理论
           这部分内容包括分布式的发展演化,base理论和cap理论等等,学习分布式技术之前,最好能对这部分概念有一定了解。
    
      一致性问题
           强一致性的解决方案:事务和锁,弱一致性的方案:消息队列。
    
     分布式session
          一个常见的问题,也有多种解决方案
    
      分布式缓存
          和上面说的缓存一样,只不过这里侧重缓存的分布式方案
    
     分布式数据库
           这里指的数据库的分布式方案,也包括hbase这种分布式数据库。
    
     负载均衡
          负载均衡也是一个值得探讨的话题,一般我们讨论的是七层和四层负载均衡。
    
    消息队列
        消息队列是一个比较复杂的分布式组件,我们可以了解常用消息队列比如amq,kafka等的实现。
    
    服务化
         服务化的核心包括rpc,服务注册中心等等。分布式服务相关技术也是后端同学必须掌握的内容。
    
    虚拟化
         虚拟化同样不是后端同学必须掌握的内容,只不过现在越来越多的服务部署方式使用的是docker和云服务的方式。所以了解一下也没有什么不好的。
    

    (13)、计算机网络

    计算机网络自顶向下方法。这本书先讲应用层和传输层,非常好,我们也一般只需要重点掌握这两层。前四章可以看下。
    TCP/IP协议卷一:tcp/ip是常考的,可以看下。
    

    (14)、操作系统
    现代操作系统:推荐阅读线程与进程,死锁,存储管理章节。再结合面经看看。
    (15)、项目
    自己准备一个好的熟悉的项目。

    展开全文
  • Java学习计划

    2019-05-14 17:48:00
    在四个月的时间里,我首先按照Java后端路线图(两个图结合着参考学习安排好复习计划,每个知识点都安排一段时间。比如我可能花一天时间复习“Java反射”,两天时间复习“设计模式”,一周的时间用于复习"JVM虚拟机...

    1、做计划,并同时写博客

    在四个月的时间里,我首先按照Java后端路线图(两个图结合着参考学习)安排好复习计划,每个知识点都安排一段时间。比如我可能花一天时间复习“Java反射”,两天时间复习“设计模式”,一周的时间用于复习"JVM虚拟机”。我一般会在月初做好整个月的计划,然后根据进度做一些微调。

    2、“写博客整合知识点”

    3、做项目,也刷算法

    跟着牛客网的项目课做了,这两个项目都使用SpringBoot快速开发,并且用到一些常用的后端技术比如redis,云存储,以及一些常见Web框架,除此之外还涉及到了solr,爬虫等技术。虽然项目不算很难,但是我在这段时间里很快地熟悉了完整项目开发的流程,并且每天做迭代,通过Git来跟进版本,每个版本都会写清所做的内容,这也让我对项目的架构非常熟悉。
    在项目之余,我也找一些常用的后端组件来跑一跑demo,以便让我对这些技术有一个直观的了解,比如面试常问的dubbo,zookeeper,消息队列等组件。这些尝试也让我在理解它们的原理时更加得心应手了。)

    4、“坚持刷题,注重方法”

    首先我重新刷了一遍剑指offer,并且对每道题目进行总结,尽量保证每一道题都可以记在脑子里,众所周知剑指offer中的题是面试时非常喜欢考的,所以先搞定这部分题目是最为关键的。
    搞定剑指offer之后,当然还要刷LeetCode了,LeetCode题目这么多,怎么选择呢,我没有按照tag刷,也没有按照顺序刷,而是参考当时一个大佬的LeetCode刷题指南来进行刷题的,他把每个类型的题目都做了归纳,每部分只放一些比较经典的题目。所以我前后大概刷了100多道LeetCode的题目,并且在第二遍刷题复习的时候,我也对这些题目做了一份总结。

    除了上面两个经典题库,我还着重刷了大厂的历年真题,这部分我主要是通过牛客网的历年真题题库来完成刷题的。说实话,真题是非常重要的,因为公司出的题目不像平时的那些算法题,可能会出得非常奇葩,所以你如果不提前适应的话会比较吃亏。完成这部分题目之后,我对算法题的复习也基本告一段落了。

    算法第四版:入门书籍,非常好。

    算法主要靠刷题,剑指offer应对面试手撕代码,刷几遍不重要,重要是理解,熟练。
    leetcode刷题。leetcode刷题顺序看自己,可以按照tag刷,可以刷leetcode前两页,或者前150题。一天两道题,早日成为大佬。我是按照一个大佬的顺序刷的 。 https://github.com/CyC2018/CS-Notes
    慕课网也有一些算法视频,可以看下。---玩转算法视频leetcode分门别类详细解析

     (1)、Java基础

         Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外, 必须弄懂它的oop特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如Spring核心的Ioc和AOP,都用到反射,而且Java自身的动态代理也是利用反射实现。此外还有Java一些标准库也是非常常见,比如集合、I/O、并发,几乎在WEB并发中无处不在,也是面试经常被问到的,所以在自学 Java 后端之前,不妨先打好这些基础,另外还有 Java8 的一些新特性,也要重点关注,比如 Lambda 表达式、集合的 Stream 流操作、全新的 Date API 等等。

         java基础+java集合+java并发多线程+java I/O+jvm

         推荐书籍:疯狂java讲义+java并发编程的艺术+深入理解java虚拟机

        另外我发现看书的效率很低,所以我一般结合视频来复习,比如 java并发编程的艺术,这本书作为多线程复习还是不错的,B站有马士兵多线程的视频深入理解java虚拟机这本书,其实没有必要全部看完,应对面试看第二章(java内存区域介绍),第三章(垃圾收集算法和回收策略)第七章(类加载机制) 第12,13章(java内存模型与线程+线程安全与锁优化,这部分可以和多线程结合看一下)。

         「Java 编程思想」这本书是Java界的圣经,但是才开始不推荐学习,我在这里推荐你们一开始先看「Java 核心技术」,这本书讲得比较通俗易懂,初学者比较能接受。关于视频推荐,推荐毕向东老师讲的Java基础教程。

    (2)、数据库

        关于 sql 方面:MySQL 教程(http://www.runoob.com/mysql/mysql-tutorial.html)

             了解一些基础语法之后,就直接跟着视频的老师做一些表操作实战练习,比如单表查询、多表查询等。需多加练习,不要只看懂了就行,因为工作中写得一手简练的 sql 是非常重要的。在项目一直秉承着 sql 语句是能避免多表查询就避免多表查询,能够分开多条语句就分开多条语句,因为这里涉及到多表查询性能和数据库扩展的问题。       

             mysql必知必会:入门书,可以快速浏览一遍

     

            高性能mysql:这本书比较厚,可以当做查阅书,边学习边看。

     

      关于 JDBC 方面:JDBC 教程(https://www.yiibai.com/jdbc/)、 JDBC 获取连接对象源码分析(http://objcoding.com/2017/07/03/JDBC/)

     

            需要弄懂 JDBC API 的用法,其实它只是一组规范接口,所有数据库驱动只要实现了 JDBC,那么就可以通过标准的 API 调用相应的驱动,完全不用知道驱动是怎么实现的,这就是面向接口编程的好处。而且对于 JDBC 可以直接看视频去理解的,跟着视频做了一个基于 Apache Dbutils 工具做了一个具有事务性的小工具,我特意用思维导图总结了一下:

    jdbc-utils源码地址:jdbc-utils(https://github.com/objcoding/jdbc-utils)

    (3)、Web基础

            曾经开源中国创始人红薯写了一篇文章「初学 Java Web 开发,请远离各种框架,从 Servlet 开发」,我觉得他说的太对了,在如今 Java 开发中,很多开发者只知道怎么使用框架,但根本不懂 Web 的一些知识点,其实框架很多,但都基本是一个套路,所以在你学习任何框架前,请把 Web 基础打好,把 Web 基础打好了,看框架真的是如鱼得水。

          关于 Http 协议,这篇文章就写得很清楚:Http协议(https://www.cnblogs.com/ranyonsue/p/5984001.html)

          关于 Web 基础这方面数据推荐,我当时是看的是「Tomcat 与 Java Web 开发技术详解」,很详细地讲解了整个 Java Web 开发的技术知识点,但现在看来,我觉得里面讲的有一些技术确实有点老旧了,不过可以了解一下 Java Web 开发的历史也是不错的。所以在 Web 基础这方面我都是看某客的崔老师讲的「超全面 Java Web 视频教程」,讲得很详细很生动,还有实战项目!

         关于 JSP,你只要了解它其实就是一个 Servlet 就行了,关于它的一些标签用法,我认为可以直接忽略,因为现在互联网几乎没哪间公司还用 JSP,除了一些老旧的项目。现在都是流行前后端分离,单页应用,后端只做 API 接口的时代了,所以时间宝贵,把这些时间重点放在 Servlet 规范上面吧。

         关于 Tomcat,它是一个 Web 容器,我们写的后端项目都要部署到Web容器才能运行,它其实是一个遵循 Http,通过 Socket 通信与客户端进行交互的服务端程序:Tomcat结构及处理请求过程(http://objcoding.com/2017/06/12/Tomcat-structure-and-processing-request-process/)

    (4)、Web 主流框架

        Java Web 框架多如牛毛,等你有一定经验了,你也可以写一个 Web 框架,网上很多说 Spring、Struts2、Hibernate 是 Java 三架马车,我只想说,那是很久远的事情了,我严重不推荐 Struts2、Hibernate,相信我,一开始只需要上手 Spring、SpringMVC、Mybatis 就可以了,特别是 Spring 框架,其实 Spring 家族的框架都是很不错的。

       但是提醒一点就是,千万不要沉迷于各种框架不能自拔,以会多种用法而沾沾自喜,导致知其然而不知其所以然。

      Spring其核心思想就是 IOC 和 AOP:

        谈谈对 Spring IOC 的理解(https://blog.csdn.net/qq_22654611/article/details/52606960/)

        Spring 面向切面编程(http://objcoding.com/2017/08/25/Spring-AOP/)

     SpringMVC 它的思想是全部请求统一用一个 Servlet 去做请求转发与控制,这个 Servlet 叫 DispatcherServlet:

        SpringMVC 初始化过程(http://objcoding.com/2017/06/14/SpringMVC-initialization-process/)

       SpringMVC 处理请求过程(http://objcoding.com/2017/06/15/SpringMVC-processing-request-process/)

    Mybatis 它可实现动态拼装 sql,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集:

       mybatis 入门教程(http://www.mybatis.org/mybatis-3/zh/index.html)

       Mybatis 深入浅出系列(http://www.cnblogs.com/dongying/tag/Mybatis%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BA%E7%B3%BB%E5%88%97/)

    (5)、Web 框架进阶

       

    使用了 SSM 框架后,你会觉得框架也不过这么回事,如果你对 Spring 有过大概了解,你也会产生想写一个「山寨版」Spring 的心思了,一个轻量级 Web 框架主要具备以下功能:

    1. 可读取用户自定义配置文件,并以此来初始化框架;
    2. 具备 Bean 容器,管理项目的类的对象生命周期;
    3. 具备依赖注入,降低类之间的耦合性;
    4. 具备 AOP 功能,使项目可进行横向编程,可不改变原有代码的情况增加业务逻辑;
    5. 具备 MVC 框架模式。

    其实除了 SSM 之外,Web 框架可谓是百家齐放,其中以 Spring 全家桶最为耀眼,在这里我极力推荐两个 Spring 家族框架:SpringBoot 和 SpringCloud。

    SpringBoot 弥补了 Spring 配置上的缺点,再也不用为繁杂的 xml 费劲精力了,堪称是 Java 后端开发的颠覆者,推荐书籍「Java EE 开发的颠覆者:SpringBoot实战」

    SpringBoot 构建 web 项目(http://objcoding.com/2017/05/03/SpringBoot/)

    SpringBoot 自动化配置源码分析(http://objcoding.com/2018/01/30/The-principle-of-Spring-Boot-automation-configuration/)

    自定义 SpringBoot Starter(http://objcoding.com/2018/02/02/Costom-SpringBoot-Starter/)

    spring-boot-starter-tutorial(https://github.com/objcoding/spring-boot-starter-tutorial)

    SpringCloud 是一个微服务架构,能够将项目按照业务分成一个个微服务,每个微服务都可独立部署,服务之间互相协调。当一个项目越来越大时,随之而来的是越来越难以维护,此时将项目拆分成若干个微服务、单独维护、单独部署,也可以降低项目不同业务间的耦合度。推荐书籍「Spring Cloud 与 Docker 微服务架构实战」,这本书将 Docker 与微服务完美地结合在一起,堪称完美!

    Spring Cloud 中文官网(https://springcloud.cc/)

    史上最简单的 Spring Cloud 教程(https://blog.csdn.net/forezp/column/info/15197)

    我写的有关于 Spring Cloud 的博客:

    SpringCloud微服务架构之服务注册与发现(http://objcoding.com/2017/05/07/SpringCloud(1)/)

    SpringCloud微服务架构之服务消费者(http://objcoding.com/2017/05/10/SpringCloud(2)/)

    SpringCloud微服务架构之断路器(http://objcoding.com/2017/05/15/SpringCloud(3)/)

    SpringCloud微服务架构之服务网关(http://objcoding.com/2017/05/20/SpringCloud(4)/)

    (6)、其他技术

    Redis:一个高性能的 key-value 数据库,当有并发量很高的请求时,将数据缓存在 Redis 中,将提高服务器的响应性能,大大减轻数据库的压力。

    redis 中文官网(http://www.redis.cn/)

    redis 教程(http://www.runoob.com/redis/redis-tutorial.html)

    Redis设计与实现:这本书基本是Redis讲的最好的,可以结合B站视频学习。

    Git:世界上最先进的分布式版本控制系统,建议所有初学者从命令行开始使用 Git!

    Git 官网(https://git-scm.com/)

    最全 Git 教程(https://git-scm.com/book/zh/v2)

    Git 的一些常用命令(http://objcoding.com/2017/08/12/Git/)

    Maven:一个用于构建项目的工具,将项目间的依赖通过 xml 完美地组织到一起,可通过编译插件将项目编译成字节码文件。还有类似的 Gradle 也是不错的选择。

    maven 的 pom.xml 文件详解(http://www.cnblogs.com/hafiz/p/5360195.html)

    Linux:至少要求常用的命令会用,能够在 linux 环境下部署项目。

    Linux 命令大全(http://man.linuxde.net/)

    最全的 SSH 连接远程终端教程(http://objcoding.com/2017/10/31/The-most-complete-SSH-connection-remote-terminal-tutorial/)

    鸟哥的linux私房菜:了解常用命令。

    Docker:简直是项目部署神器啊,来不及解释了,看我 Docker 系列博客,开启 Docker 之旅吧!推荐书籍「Docker 技术入门与实战」,中国首部 Docker 著作!

    Docker 实战(一)(http://objcoding.com/2017/12/01/Docker(1)/)

    Docker 实战(二)(http://objcoding.com/2017/12/07/Docker(2)/)

    Docker 实战(三)(http://objcoding.com/2018/02/06/Docker(3)/)

    docker-deploy-tutoria(https://github.com/objcoding/docker-deploy-tutorial)

    (7)、开发工具    

    工欲善其事,必先利其器,以下是我推荐的一些开发工具:

    Intellij IDEA:Java 开发最好的 IDE,这个是公认的,我一开始是用 Eclipse 的,后来用了 Intellij IDEA,才发现 Eclipse 就是一坨屎,所以我以过来人劝你们不要使用 Eclipse,直接 Intellij IDEA!

    IntelliJ IDEA 使用教程(http://www.phperz.com/special/83.html)

    Iterm2:macOS 最好用的终端!

    Iterm2 使用指南(https://wdxtub.com/2016/03/20/iterm2-guide/)

    Chrome:人生苦短,请用 Chrome,来不及解释了,快上车!

    Postman:很好用的一个接口调试工具。

    Postman 官网(https://www.getpostman.com/)

    (8)、设计模式、

         一直觉得设计模式可以和Java基础一块学,所以把它放在这里。当然,一些真正使用到设计模式的地方,譬如JDK的集合类,IO流等等,也需要足够重视。

        HeadFirst 设计模式:重点了解单例模式,工厂模式,观察者模式,等等,可以看看B站视频

    (9)、Jvm基础与调优

         JVM是提供Java程序运行的一个进程,学习JVM知识,也是我们的必经之路。除了看懂《深入理解jvm虚拟机》以外,我们还要学习的内容就是JVM调优,使用合适的工具诊断问题,最后解决问题。

    这部分内容在面试中呈现的不仅仅是GC,内存分区,以及类加载器,也包括了我所说的JVM调优问题。
    (10)、数据相关     

          关系数据库Mysql
              这个不必多说,人手都要会,不管是基础的crud,索引,抑或是进阶的存储引擎,分布式方案等,我们都需要对应掌握。

          缓存
              如Redis,memcache一类的缓存,作为后端开发者的我们也需要对应掌握,当然,它们的高级特性,以及分布式方案,也是必备的知识点。

         搜索引擎
              基于Lucene的solr,elasticsearch这类搜索引擎,本质上也是数据源,但是并不是后端必备的内容,不过学一学也没有坏处啦。

        大数据
              海量数据处理的场景越来越多,大数据技术如hadoop,storm等也越来越火,但是大数据应用一般会由专业的大数据工程师来做,所以我们学一些基本内容也就足够了。
    (11)、算法和数据结构  

          算法一直是校招同学面前的一座大山,作为后端同学来讲,除了基本的数据结构算法以外,也要会一些高级的算法,譬如dp,搜索,贪心等等。

         另外,通过LeetCode等题库来刷题的方式来巩固算法也是公认的好办法了。

    (12)、分布式      

            最后一个部分,也是内容最多,覆盖面最广泛的部分了。分布式相关的技术实在太多了,我们这里也会做一下简单的归纳。

            web架构
               先了解web架构的发展会对分布式的学习有更好的理解,毕竟架构的发展也对应着分布式技术的发展。

           分布式理论
               这部分内容包括分布式的发展演化,base理论和cap理论等等,学习分布式技术之前,最好能对这部分概念有一定了解。

          一致性问题
               强一致性的解决方案:事务和锁,弱一致性的方案:消息队列。

         分布式session
              一个常见的问题,也有多种解决方案

          分布式缓存
              和上面说的缓存一样,只不过这里侧重缓存的分布式方案

         分布式数据库
               这里指的数据库的分布式方案,也包括hbase这种分布式数据库。

         负载均衡
              负载均衡也是一个值得探讨的话题,一般我们讨论的是七层和四层负载均衡。

        消息队列
            消息队列是一个比较复杂的分布式组件,我们可以了解常用消息队列比如amq,kafka等的实现。

        服务化
             服务化的核心包括rpc,服务注册中心等等。分布式服务相关技术也是后端同学必须掌握的内容。

        虚拟化
             虚拟化同样不是后端同学必须掌握的内容,只不过现在越来越多的服务部署方式使用的是docker和云服务的方式。所以了解一下也没有什么不好的。

    (13)、计算机网络    

        计算机网络自顶向下方法。这本书先讲应用层和传输层,非常好,我们也一般只需要重点掌握这两层。前四章可以看下。
        TCP/IP协议卷一:tcp/ip是常考的,可以看下。
    (14)、操作系统
       现代操作系统:推荐阅读线程与进程,死锁,存储管理章节。再结合面经看看。
    (15)、项目
        自己准备一个好的熟悉的项目。

    转载于:https://www.cnblogs.com/xiaoshen666/p/10863599.html

    展开全文
  • java学习规划

    2016-07-20 09:31:00
    今天在网上看到一位大学生的java学习线路规划,觉得蛮适合我,就详细阅读了一下,规划路线应该适用于大部分学习java语言的人,贴出来与大家共勉。  在学习的过程中,不能急于去学习更多的知识,因为知识是无穷...
  • java学习路线

    2011-08-01 13:47:21
    java是目前企业级开发中使用较多的一门语言,本人从事c++,但工作中难免也要与java打...下面指定一个java的学习路线,以帮助我在业余时间可以统筹安排java学习进度。  1、首先了解基本的javase。这个只需要对基本的
  • 三周java学习总结

    千次阅读 2020-04-25 10:19:25
    过了一段时间,学校开始上java课时,我意识到java学习是不能放下的,特别是当你还不够熟悉这一领域。上课时我能感受到我预习过得知识已经变得模糊,打开记事本根本不知如何下手。 在上了三周的java课后,我对java...
  • java 学习历程

    2011-10-17 16:48:54
    基础稍差或零基础 : 视频学习周期建议为 20-30 天,具体根据学生自学能力,自行合理安排时间。 第一阶段: 初级(8-12 天) 点击下载 第一阶段:Java 初级 ● Java 开发前奏 ● Java 编程基础 ● 面向对象上 ● 面向...
  • 因公司 python 项目结束,暂时也没有 python 的项目,所有需要我们 python 小组的人去转到 Java 项目组,给了一段时间学习,公司的全栈工程师大佬给我们安排学习计划,给了基本 Java 的电子书,开始一段时间的带薪...
  • Java学习决心计划书

    千次阅读 2018-05-30 00:31:11
    每天学习java知识10个小时(计划安排时间表如下)日学习计划安排时间学习计划8:30~11:30上半天学习java课程知识11:30-13:00吃饭,午休13:30-17:00上午学习内容代码实现,下半天JAVA课程知识19:00-22:00(单日)...
  • java学习心得2

    2020-06-09 08:13:21
    自己没有合理安排时间,课后也没有花一点时间放在专业学习上 基础知识不牢固,敲代码都只能照着老师的代码敲,自己却不会主动去思考,这行代码写了之后有什么用,敲出来能不能运行出来 不会去巩固前面的知识,导致很...
  • 前段时间忙于考试,一直没时间Java学习笔记。现在继续踏上Java学习的路程。前面学了界面、监听、继承等等知识,现在就用这些知识来实现自己的第一个Java项目。首先来思考几个问题:1.实现五子棋所需的API类要哪些...
  • 虽然在经过了四个月的java培训学习(实际上除去过年和星期天等等,就三个月这样),我感觉到自己学习的很多知识都是零零碎碎的,没有一点的知识体系,很多的基础知识也只是粗略的过了一遍,并没有深入的了解到其内在...
  • java学习第二周

    2020-10-03 23:18:59
    学习时间: 1、 周一至周五早上8:30—晚上9:00 2、 周六、周日自行安排 相关代码: package Day07; /** * @Author: xuzhen * @Date: 2020/9/28 18:14 * @Description: * 一组序列 1 ,1, 2
  • 记录java学习起点

    2018-04-08 22:09:56
    学生党一枚,明天开始学习Java培训,自己内心也是很忐忑,不知道未来的五个月会遇到什么困难和不确定的事儿。不过内心还是下定了决心要勤学苦练,课程安排很满,从周一到周六,没有过多空闲时间。自己也是第一次在...
  • 学习安排

    2016-05-01 17:04:09
    有关学习算法(通过java语言实践)的学习计划安排算法与数据结构的重要性不言而喻,尤其是在找工作面试中,IT技术面试基本都会有(而且设计操作系统同步锁,进程管理等知识),在此记录下为自己制定的接下来一年时间...
  • 开发者学习热情高涨,31%接受了软件开发的在职培训… *以下数据报告来源:CSDN 软件开发工具使用特点分析 01 Java长盛:使用最多、最想学 60%的开发者使用最多的编程语言是JavaJava、Python、Javascript是开发者...
  • java编程学习方法

    2017-12-09 16:44:08
    1、 要培养程序思维,生活中处处皆对象,...4、学会做计划,安排好自己的时间,这样才能在这五个月java基础学习时间里高效率的学习,快速入门。 5、关注IT和互联网行业,了解最新动态和技术。 6、拓展巩固子自
  • Java学习路线以及资料

    千次阅读 2017-02-16 17:45:51
    先说明一下,虽然问题是“一年内如何全职学习”,实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了。 和楼主有些相似,大三的时候,我萌生了...
  • Java 学习 - 开篇

    2018-08-06 21:19:57
    总是提不起笔,要不是在LOL的游戏里不能自拔,要不就是在昏天黑地的喝酒吹牛,日子一天一天过去,工作一年有余,编程能力没有上去,看了别人很多的博客帖子,不管是在工作上的安排与打算,还是能力的提高与深化,都...
  • Java Web 学习路线

    2018-12-02 21:48:30
    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了。 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算是学完了...
  • 19级学生前三周Java学习总结

    千次阅读 2020-05-24 18:21:30
    过了一段时间,学校开始上Java课时,我意识到Java学习是不能放下的,特别是当你还不够熟悉这一领域。上课时我能感受到我预习过得知识已经变得模糊,打开记事本根本不知如何下手。 在上了三周的Java课后,我对Java...
  • Java多线程学习

    2020-08-13 00:43:38
    java多线程学习(个人学习仅供参考) 进程与线程 进程就是程序执行的过程,它是一个动态的概念,进程中有多个线程,一个进程中至少有一个线程。 线程就是独立执行的路径。 main称之为主线程,用于执行整个程序。 在...
  • 开始正式学习JAVA

    2015-01-06 23:55:27
    上午做了一些学习规划,包括如何保证学习效果,学习时间安排,学习的方法 听了第一堂课,同时记了导图,感觉老师讲的确实不错,深入浅出,也很详细,哪里该做笔记,哪里该操作,都十分清晰 学到了的知识 LINUX的...
  • 课程内容:本课程是《Java工程师必学系列课程》的第6部分,主要讲解Java语言中中新旧两代日期时间相关的类、日期时间相关的处理方法、历法和时间计算的常识,在课程的最后还安排了万年历实战项目本课程涉及的主要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 502
精华内容 200
关键字:

java学习时间安排

java 订阅