• 一年一度毕业季,又到了简历、offer漫天飞,失望与...在毕业生所学知识普遍脱离职场实战的大趋势下,《Java Web开发实战》应运而生,此教材由千锋教研院高教产品研发部编著、清华大学出版社出版,将理论应用于实践,...

    一年一度毕业季,又到了简历、offer漫天飞,失望与希望并存的时节。在IT行业,高校毕业生求职时,面临的第一道门槛就是技能与经验的考验,但学校往往更注重学生的理论知识,忽略了对学生实践能力的培养,因而导致很多求职者在面试中败下阵来。在毕业生所学知识普遍脱离职场实战的大趋势下,《Java Web开发实战》应运而生,此教材由千锋教研院高教产品研发部编著、清华大学出版社出版,将理论应用于实践,切实提高学生的实战能力。

     

    下面给大家分享点本书的干货内容,关于JDBC内容继续给大家学习,想要完整资料的可以衔接查看之前的文章。

    据库可以是不相同的。

    1.1.1 JDBC的常用API

    JDBC定义了一系列操作数据库的接口和类,这些接口和类位于java.sql包中。接下来,本节将详细介绍JDBC的常用API。

    1. Driver接口

    Driver接口是所有JDBC驱动程序必须要实现的接口,该接口提供给数据库厂商使用。在编写JDBC程序时,必须先装载特定数据库厂商的驱动程序,装载驱动程序通过java.lang.Class类中的静态方法forName()实现。

    2. DriverManager类

    DriverManager类用于加载JDBC驱动并创建与数据库的连接,DriverManager类的常用方法,具体如表1.1所示。

     

    表1.1 DriverManager的常用方法

    方法名称

    功能描述

    registerDriver(Driver driver)

    注册数据库的驱动程序

    getConnection (String url,String user,String password)

    获取数据库连接

    3. Connection接口

    Connection接口表示Java程序和数据库的连接,Java程序和数据库的交互是通过Connection接口来完成的。Connection接口的常用方法,具体如表1.2所示。

    表1.2 Connection接口的常用方法

    方法名称

    功能描述

    createStatement()

    创建向数据库发送sql的Statement对象

    prepareStatement(String sql)

    创建向数据库发送预编译sql的PrepareSatement对象

    prepareCall(String sql)

    创建执行存储过程的CallableStatement对象

    4. Statement接口

    Statement接口用于向数据库发送SQL语句,Statement接口提供了三个执行SQL语句的方法,具体如表1.3所示。

    表1.3 Statement接口的方法

    方法名称

    功能描述

    execute(String sql)

    运行语句,返回是否有结果集

    executeQuery(String sql)

    运行select语句,返回ResultSet结果集

    executeUpdate(String sql)

    运行insert/update/delete操作,返回更新的行数

    5. PreparedStatement接口

    继承自Statement接口,用于执行预编译的SQL语句,PreparedStatement接口提供了一些对数据库进行基本操作的方法,具体如表1.4所示。

    表1.4 PreparedStatement接口的方法

    方法名称

    功能描述

    executeQuery(String sql)

    运行select语句,返回ResultSet结果集

    executeUpdate(String sql)

    运行insert/update/delete操作,返回更新的行数

    addBatch(String sql)

    把多条sql语句放到一个批处理中

    executeBatch()

    向数据库发送一批sql语句执行

    6. CallableStatement接口

    继承自PreparedStatement接口,由方法prepareCall()创建,用于调用SQL存储过程。CallableStatement接口提供了一些对数据库进行基本操作的方法,具体如表1.5所示。

    表1.5 CallableStatement接口的方法

    方法名称

    功能描述

    wasNull()

    查询最后一个读取的OUT参数是否为SQL类型的Null值

    setNull(String parameterName,int sqlType)

    将指定参数设置为SQL类型的NULL

    getInt(int parameterIndex )

    以Java语言中int值的形式获取数据库中Integer类型参数的值

    setString(String parameterName,String x)

    将指定参数设置为给定的Java类型的String值

    registerOutParameter(int parameterIndex, int sqlType)

    按顺序位置parameterIndex将OUT参数注册为SQL类型

    7. ResultSet接口

    ResultSet接口表示执行select查询语句获得的结果集,该结果集采用逻辑表格的形式封装。ResultSet接口中提供了一系列操作结果集的方法,具体如表1.6所示。

    表1.6 ResultSet接口的方法

    方法名称

    功能描述

    getString(int index)、getString(String columnName)

    获得在数据库里是varchar、char等类型的数据对象

    getFloat(int index)、getFloat(String columnName)

    获得在数据库里是Float类型的数据对象

    getDate(int index)、getDate(String columnName)

    获得在数据库里是Date类型的数据

    getBoolean(int index) 、

    getBoolean(String columnName)

    获得在数据库里是Boolean类型的数据

    getObject(int index)、getObject(String columnName)

    向数据库发送一批sql语句执行

    next()

    移动到下一行

    previous()

    移动到前一行

    absolute(int row)

    移动到指定行

    beforeFirst()

    移动resultSet的最前面

    afterLast()

    移动到resultSet的最后面

    ResultSet对象维护了一个指向表格数据行的指针,指针默认在第一行之前,调用next()或previous()等移动指针的方法,可以使指针指向具体的数据行,进而调用getObject()方法获取指定的查询结果。

    8.  ResultSetMetaData接口

    ResultSetMetaData接口用于获取关于ResultSet 对象中列的类型和属性信息的对象。ResultSetMetaData接口的常用方法,具体如表1.7所示。

    表1.7 ResultSetMetaData接口的常用方法

    方法名称

    功能描述

    getColumCount()

    返回所有字段的数目

    getColumName(int colum)

    根据字段的索引值取得字段的名称

    getColumType (int colum)

    根据字段的索引值取得字段的类型

    1.1.2 JDBC URL

    JDBC URL提供了一种标识数据库的方法,它可以使JDBC程序识别指定的数据库并与之建立连接。大家在编写JDBC程序时, 无需关注JDBC URL的形成过程,只需使用与所用的数据库一起提供的URL即可。

    JDBC URL的标准语法如图1.4所示(以MySQL为例)。

     

    图1.1 JDBC URL的标准语法

    从图1.4中可以看到,JDBC URL由协议、子协议、主机端口、数据库名称、参数等组成。其中,JDBC URL中的协议总是jdbc,子协议因数据库厂商的不同而有所差异,在本例中为mysql,主机为数据库所在主机地址,端口为MySQL数据库的默认端口号3306,参数多为连接属性的配置信息,包括数据库的用户名、密码、编码、套接字连接的超时等,JDBC URL的常用参数如表1.8所示。

    表1.8 JDBC URL的常用参数

    参数类型

    参数名称

    user

    数据库用户名,用于连接数据库

    password

    用户密码,用于连接数据库

    useUnicode

    是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true

    characterEncoding

    当useUnicode设置为true时,指定字符编码。比如可设置为gb2312、gbk、utf8

    autoReconnect

    当数据库连接异常中断时,是否自动重新连接

    autoReconnectForPools

    是否使用针对数据库连接池的重连策略

    failOverReadOnly

    自动重连成功后,连接是否设置为只读

    maxReconnectsautoReconnect

    重试连接的次数

    initialTimeoutautoReconnect

    两次重连之间的时间间隔,单位:秒

    connectTimeout

    和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本

    socketTimeoutsocket

    操作(读写)超时,单位:毫秒。 0表示永不超时

     

    转载于:https://www.cnblogs.com/qianfengcs/p/11227422.html

    展开全文
  • 学习 Java 也有了不少时间,入 Java 后台的坑也有了一段时日。这段时间里,听过许多前辈的经验与分享,也看过许多大佬的文章和作品。找了个时间整理和总结了一下我个人到目前为止一路以来的听到看到或者自己感悟到的...

    学习 Java 也有了不少时间,入 Java 后台的坑也有了一段时日。这段时间里,听过许多前辈的经验与分享,也看过许多大佬的文章和作品。找了个时间整理和总结了一下我个人到目前为止一路以来的听到看到或者自己感悟到的干货。

    这篇文章可能更多的是面对初学者,当然,只要有人看了我的这篇文章后能有所收获,我就心满意足了。

    本文主要有那么几个部分:
    • 学习路线
    • 推荐一些书籍和公众号

    - 推荐一些网站,工具和资料

    一. 学习路线

    对于想往 java 后台这个方向发展的同学,可以按照以下路线入门:

    - 先把 java 基础部分学完,重点关注多态继承等面向对象的概念,异常,IO,容器等,这部分建议通过视频来学习(毕向东,马士兵老师等的视频都是很经典的,虽然可能年代稍久远,但是万变不离其宗)。有些人可能会推荐看书来学习(如《head first java》等),但是个人认为,如果对于初学者,看书可能相对来说比较难理解,也很容易出现看不下去的情况,而许多优秀的教学视频更加生动,也更加容易理解。
    - 然后就可以开始 javaweb 的学习了,Jsp,Servlet 相对来说比较老旧,但是对于初学者理解 HTTP 请求,理解前后端的交互,理解 MVC 模式,以及对以后框架的学习还是非常有帮助的;除此之外,这个时候还需要掌握数据库的知识,以及一些基础的前端知识。
    - 等到以上都搞定之后,你就可以开始你的第一个 javaweb 项目了,可以尝试完成一个具有登陆注册,增删查改等基本功能的小项目,融入自己的想法,或者在网上或者 github 上也可以找到许多练手的例子。
    - 以上只是 javaweb 的基础部分,接下来你还要完成框架的学习,spring + springMVC + mybatis 是现今比较流行的框架组合,到了这部分,就要好好花多点时间来钻研学习了,框架的学习同样建议看视频来先过一遍,初步熟悉了解,再通过代码实践,项目实战以及书本来加强巩固。

    关于后面的进阶,网上也有许多 “ Java 技能图谱 ” “ Java 学习路线 ” ,这里给大家推荐两个地址参考:
    Interview-Notebook
    Java 工程师成神之路

    二. 书籍

    网上关于 Java 的书单很多,这里给大家推荐几本

    书名 介绍
    《JSP & Servlet 学习笔记》 非常适合入门 JSP Servlet 的一本书,通俗易懂,书里写的一个微博小项目也很适合在学习的时候跟着一起做
    《Java核心技术·卷 I》 比较适合入门的一本经典 java 书籍,相比 java 编程思想等更浅显易懂,也可以作为工具书使用
    《Spring 实战》 spring 的一本经典书籍,讲的十分全面,十分值得一看
    《算法》 简单明了的书名,java 实现的算法书,比起《算法导论》更适合入门,自然也十分易懂
    《Head First 设计模式》 非常有趣的一本书,可以把每一个设计模式讲得十分生动
    《图解 HTTP》 让你了解程序员都必须懂的 HTTP
    《深入理解 Java 虚拟机(第2版)》 进阶书籍,提升Java功力之良药,当然也比较难懂
    《高性能 MySQL》 MySQL的中高级教程,所以 MySQL 入门就不要看这个啦
    《Java并发编程实战》 看“并发”俩字就知道这是一本 Java 进阶书籍
    《Java 8 实战》 Java 8 的新增功能是 Java 发生的一次很大的变化,这本书也全面讲解了 java 8 的新特性

    三. 公众号

    没事就看看,利用碎片时间,比刷微博,刷知乎好啊

    码农翻身


    作者刘欣,擅长用讲故事的方式来讲解知识点,经常分享好玩有趣的编程知识和职场的经验教训。

    纯洁的微笑


    总结了很多关于 spirngboot,springcloud,JVM 等的知识,还有一系列杂谈, 作者 github 的 Spring Boot 示例代码项目拥有 4K star,可以去关注看看

    Java 团长


    经常会出一些总结性的文章,知识面很广,一个适合用来补充知识点的公众号

    程序员小灰


    用漫画的方式来讲解技术问题,看漫画,谁都喜欢吧~

    四. 关于知识星球(原小密圈)

    相信关注公众号多的人都知道这个,许多公众号作者都有在维护自己的知识星球。怎么说呢,知识星球本质上是一个付费论坛、社区,作为知识付费观念的一个体现,最重要的是要让自己觉得从中的获得的信息值得自己所付出的金钱,很多人花了 200 块,但是一段时间后觉得自己没什么收获,那自然是不值的。不过加入知识星球之前,首先也要做好获取信息的准备,很多人花了钱,看了一两眼,就将 APP 丢到了角落,又跑去刷微博了,那也自然是毫无用处的。收获自然是会有的,但是有多少就看每个人挖掘信息的能力了。
    当然,什么东西涉及到付费,都要留个心眼,加入之前要仔细斟酌,不要被坑了。

    五. 程序员的好帮手

    分享一些有用的网站,工具~

    1. Google Chrome

    谷歌浏览器,不用多说了吧,程序员必备浏览器(或者还有 Firefox ?),响应快速,还有非常多好用的插件,这里先给大家推荐几个插件:

    ① Octotree

    github 必备插件,没有之一,直接在Chrome侧边栏像打开文件夹一样的查看别人的项目,大大提高了效率

    同类型的插件还有 GitCodeTree ,用于码云

    ② JSONView

    对接 api 接口的时候,返回 json 格式在原本的浏览器中的显示是杂乱无章的,利用这个接口,可以帮助你将 json 排版整理好

    ③ FireShot

    网页截图工具,支持滚动截屏,还可以直接保存为PDF,JPEG,GIF,PNG或BMP,功能众多

    ④ 划词翻译

    翻译插件很多,这个是个人认为比较好用的一个划词翻译插件,响应快速,是提高效率的一个好工具

    ⑤postman

    准确地来说,这是一个 Chrome 应用,它是一个发送请求的利器,用来调试 api,调试网络最好不过。

    这里再给大家推荐一篇文章:吐血推荐珍藏的 Chrome 插件

    2. IntelliJ IDEA

    很多人都在劝戒说尽早放弃 eclipse 来投入 IDEA 的怀抱,IDEA 的确是非常的好用,不过我在这里也只是推荐,使用什么还是看个人喜欢。
    IDEA 里面有非常多好用的插件,这里先给大家几个:

    插件 介绍
    CamelCase 变量命名类型快速转换,比如驼峰命名,下划线命名
    CodeGlance 右侧增加一块代码小地图
    Translation 翻译插件
    Alibaba Java Coding Guidelines 《阿里巴巴Java开发规约》扫描插件,让你的编码规范起来

    3. GitHub

    程序员交友网站,作为全世界最大的开源社区,GitHub 可以说是程序员的必备网站,学会使用 GitHub 也是程序员的必学科目。
    这里给大家推荐一份 github 教程: learn-github-from-zero,作者 stormzhang

    4. 掘金

    一个高质量的技术社区,一方面也很喜欢掘金网页的 UI,现在也越来越多人加入进来。

    5. LeetCode

    简单来说就是一个刷题网站,里面有各种类型的算法题目,每天做那么一点,既能加强算法,也能保持编码手感以及训练写白板代码。
    最近也是出了 leetcode 中国的网站,不过个人推荐还是使用国外版,毕竟人多,讨论什么的也多。

    6. 七牛云

    一个方便快捷的云存储平台,可以用作些小项目的云存储,同时它为所有用户提供了免费的额度,是一个很适合个人使用的云存储平台。

    7. ProcessOn

    一个很好用的在线作图网站,支持流程图、思维导图、原型图、UML、网络拓扑图等,不过呢,免费版每个账号只能新建 9 个文件,当然,如果不想花这个钱的话,作完一张图之后保存到本地,然后重新作图也是可以的。

    8. Snipaste

    一个方便快捷的截屏软件,个人非常喜欢

    9. 有道云笔记

    平日里的学习记笔记是很重要的。为知,有道,印象等笔记软件都有用过,为什么推荐有道呢,一方面免费,一方面界面好看,一方面 markdown 渲染相对更好,除此之外还能够进行分享。不过有个缺点就是 markdown 编辑器的卡顿问题。
    当然如果有更好的笔记软件也希望大家分享。

    10. 阿里巴巴 Java 手册

    阿里官方 Java 代码规范标准,涵盖了编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等。经历过几次的迭代更新,目前更新为 1.3 终极版,之后又公布了该规约的插件(上文有提到),可以说是真正的干货了。


    以上就是我的个人分享,目前暂时想到那么多,以后有新的东西再更新,希望能给大家带来帮助!

    展开全文
  • 就当前的IT行业的发展环境来看,招聘Java程序员的公司越来越多,学习Java技术的也越来越多,对于初学者而言,技术学习是我们首要考虑的问题,对此,总结了以下十条小建议: 1 、与其反复阅读,不如经常回顾 与其一遍...

    就当前的IT行业的发展环境来看,招聘Java程序员的公司越来越多,学习Java技术的也越来越多,对于初学者而言,技术学习是我们首要考虑的问题,对此,总结了以下十条小建议:

    1 、与其反复阅读,不如经常回顾

    与其一遍又一遍地阅读重复的书籍,编写同样的「Hello World」,不如有意识地总结回顾看过的书,学过的知识。 只需要每晚趟在床上的时候,回想一下今天都学到了什么?今天自己有进步一点点吗?

    2 、多做练习,多写代码,从错误中学习

    看技术书籍要多写书中的代码,在初学阶段哪怕对着书本敲也没有什么问题。认真完成书中留的习题,在自己没有尽最大努力的情况下面不要去看答案。 不要怕犯错,每一次犯错都是自己进步的机会。

    3、 多总结问题的解决方案,多写可复用的代码,拒绝复制粘贴

    每天把工作中遇到问题的解决方案总结一下,想想为什么要这么做,是什么导致了这个BUG,导致BUG的根本原因是什么。 是自己的逻辑混乱,粗心大意,还是程序框架太复杂?做需求的时候,要尽量避免复制粘贴,不要让代码里面有重复代码。

    4、 对于自己想要学习的内容,制订一下计划,有节奏地学习

    我是一个非常爱学习的人,但是有时候还是感觉学习不够高效。经常会由于一些突发情况把原本的学习计划打乱,导致学习效果打折扣。 因为学习一个东西怕的就是三天打渔,如果能够持续地学习一个东西,我可以把它学习地很好。

    5、 尝试使用不同的方式来解决一个问题

    在遇到一个没有显而易见解决方案的问题时,你可能费了好大功夫想出一个方案,但是千万要记得,该方案不一定是最优的,而且很大可能还存在一个更佳的方法。而这个方法只需要你退后一步,换个思路,或者与同事讨论一下就可以得出。 另外,习惯了面向对象,何不尝尝函数式编程?每年学习一门新的不同范式的编程语言,可以极大地开拓你的眼界,给你一些不一样的解题思路。

    6、 注意劳逸结合

    多参加体育锻炼,多去户外走走,运动能够增强人的记忆力,并且有时候还能产生灵感。想要成为大神,身体好是前提条件。

    7 、向别人解释你的知识,多与人讨论

    多写博客,多分享自己的所学所思,这些对于学习者自身也是非常有益的。通过用别人能够理解的语言来解释你学到的东西, 本身就要求你对该知识充分理解。

    8、 保持学习的专注

    很多知识没有足够的专注力和足够多的时间是很难学好的,保持学习的专注尤其重要。 因为人的大脑在专注模式下面,神经细胞更活跃,你学的东西更容易从短期记忆变成中长期记忆。 而且在高度专注下面,你的解决问题的能力也会提高,原本看起来复杂的东西,在专注面前说不定就不是事了。

    9、 找到自己的短板并补足自己的短板

    发现并找到自己的不足相对来说是比较容易的,但是要补齐短板就非常不易了。 因为人总是有畏难思想的,拖延症是怎么来的,就是你的大脑出于本能去做一些让自己分泌更多多巴胺的事情。 如果自己英语不好,就要下决心把英语攻克。如果自己数学不行,就要下死力气掌握数学。 补齐短板就像渡劫,越早渡劫,越快升仙。

    10 、给自己设计学习奖励

    比如学好了 3D 数学,就给自己买一台顶配 MacBookPro 之类的。为什么游戏可以让你上瘾,因为它有反馈,有奖励机制。 学习数学是非常枯燥的,如果有了这个奖励机制,也许自己就更容易坚持了呢。

    学习从来就不是一件容易的事,只有养成一些好的学习习惯才能让我们事半功倍,也会增加一些坚持的动力!

    展开全文
  • 网上搜到的Java学习路线图也是一抓一大把。 今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点。所谓不求最好,但求最全,学习Java后端的同学完全可以参考这张图进行学习路线安排。 当然,有一些知识点是可...

    前言

    学习路线图往往是学习一样技术的入门指南。网上搜到的Java学习路线图也是一抓一大把。

    今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点。所谓不求最好,但求最全,学习Java后端的同学完全可以参考这张图进行学习路线安排。

    当然,有一些知识点是可选的,并不是说上面有的你都要会啦。我在复习秋招的过程中就是基于此图进行复习的,感觉效果还是不错的。

    闲言少叙,我们还是看看这张图上都包含哪些有价值的信息吧。再次说明,本文只对路线图做一个简单地解读,仅供参考。大家可以根据自身情况来指定合理的学习计划,相信也会大有裨益。

    推荐 Java Spring Boot/Cloud /Redis视频:

    原图地址:

    在这里插入图片描述

    1 计算机基础

    这部分内容是计算机相关专业同学的课程,但是非科班的小伙伴(譬如在下)就需要花时间恶补了。特别是计算机网络,操作系统,数据结构这三门课程。

    至于编译原理,个人大概懂一点就行了,我也只看过简单的概念和状态机相关的内容,并不是特别重要。

    2 Java编程

    这里的Java编程部分包含了很多内容。我们可以分别看看,大概归纳一下就是这几个部分。

    Java基础

    这里的Java基础包括基本语法,集合类框架,以及一些高级特性,比如反射,注解等等。

    Java基础的知识点非常多,所以要真正搞懂也没有那么简单,另外,随着时间推移,一些新特性也需要得到我们的重视,比如时下流行的JDK8。

    设计模式

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

    Java Web技术

    Java Web技术包括J2EE,以及web框架,乃至一系列常用的组件。

    • 1 J2EE主要包括的就是servlet,jsp这些比较复古的web开发组件了。虽然现在直接用它们的情况比较少,但是我们还是需要花一些时间去掌握它们的。

    • 2 web框架常用的就是Spring了,相应的,hibernate和mybatis也需要了解一下。

    • 3 同时,JavaWeb开发时的常用类库,比如jnuit单元测试,log4j日志工具,以及构建工具maven,都属于我们要掌握的范畴。

    • 4 最后,要注意的是,Web相关的一些基本知识,比如HTTP协议,网络安全基础,也是我们要考虑的部分。

    Java并发技术

    Java的并发技术泛指Java的多线程技术,以及JUC包里的并发类,比如线程池,并发工具类,阻塞队列等等。

    Java并发技术完全可以独立出来学习,是Java进阶知识的一大重点。

    Java网络编程和服务器

    这一块内容是Java中比较复杂但也很重要的一块内容。比如BIO,NIO,AIO的一些使用和原理,以及tomcat这类web服务器,甚至是netty这种网络编程框架,都是可以去了解和学习的内容。

    Jvm基础与调优

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

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

    3 Linux

    作为后台同学,常年被面试官问linux相关的问题,所以觉得学好linux还是蛮重要的,除了基本命令以外,最好还能了解一些shell脚本,甚至是内核相关的知识,这方面是我的一个弱项。

    4 数据相关

    在这个路线图里,数据部分囊括了非常多的数据源,我们可以来看看都有哪些是我们需要掌握的。

    关系数据库Mysql

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

    缓存

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

    搜索引擎

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

    大数据

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

    5 算法和数据结构

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

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

    6 分布式

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

    web架构

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

    分布式理论

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

    一致性问题

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

    分布式session

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

    分布式缓存

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

    分布式数据库

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

    负载均衡

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

    消息队列

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

    服务化

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

    虚拟化

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

    推荐 Java Spring Boot/Cloud /Redis视频:

    展开全文
  • java基础知识干货整理 Java控制台输出与Scanner输入 1分钟了解java逻辑运算符 更新中 java进阶 更新中
    展开全文
  • 本人是一名大二学生,和Java打交道已经一年多了。第一次写这种博客,可能内容上不是很全,在这一年中,我踩过很多坑,也浪费许多宝贵的时间,所以我把这一年总结的经验分享给大家,希望这篇文章会对刚入门的朋友有...
  •  Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.  Java分为三个体系:  JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)  JavaEE(J2EE)(Java 2.....
  • 废话不说,又到了总结上个月干货的时候了,这个月我们带来了各种Java技术干货,都是不得不看的 Java 实战经验及最新的热门资讯。如果你有错过本月干货,那么你可以在这里统一回顾一下。 Java序列化技术即将被...
  • java干货分享

    2018-06-06 16:27:13
    身边总有很多人有疑虑,java自学要怎么开始?我英语不好,数学不好,零基础可以好java吗?所以小编花了一周的时间,来整理了一套适合java自学零基础最新教程。分享给想学习java的朋友!要想领取学习 java资料的,加...
  • 自从拉了Java社群之后,发现经常有一些新手Java开发在吐槽,吐槽...除了基础的课程分享之外,6月份小编还会搭建专属的Java学习专区,里面不止有视频进阶课程,还会有相关的Java图文干货推送,搭载Java社群,让学习过...
  • 面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2016年面试题,让大家在找工作时候能够事半功倍。1.Switch能否用string做参数?...java学习干货面试经验,不定期分享,学习课程定期更新...
  • 面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2016年面试题,让大家在找工作时候能够事半功倍。1.Switch能否用string做参数...java学习干货面试经验,不定期分享,学习课程定期更新,知...
  • 最近有粉丝私信我说,能不能分享一些技术型的干货,方便开发,于是我抽时间总结了一些经常会用带的代码片段,分享给大家! 下面是10个非常有用的Java程序片段,希望能对你有用。 字符串有整型的相互转换 向文件...
  • java学习路线图(2018年最新版)最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很...
  • JAVA学习路线图,2018年最详图解 首先,我们需要了解JAVA是什么,配置下JAVA的环境 ,学习JAVA的语法、面向对象、异常处理、常用类、集合框架、注解等内容。       当有了JAVA基础的内容之后,再学习MySQ....
  • Java干货整理

    2018-10-22 10:09:09
    无论是你正在进行Java学习,还是正在准备Java面试,这都是一篇能够让你获益匪浅的文章:往下读!继续往下读!读完!!!!!!信了吧!!!!!!!!近期优质文章Geely|如影随形的设计模式与现实世界_Jimin_|多线程...
  • JDK 1.4后,Java提供了一个全新的IO API,即 Java New IO 本文 全面 & 详细解析Java New IO,希望你们会喜欢 目录 储备知识:Java IO 1. 定义 即 Java New IO 是1个全新的、 JDK 1.4后提供的 IO API ...
  • Java学习网站,有了这些,成为大牛不在话下
  • 史上最全Java学习视频下载地址分享 一、java基础 1.毕向东基础,这个最有名了,毕老师还是毕姥爷? 链接:https://pan.baidu.com/s/17bL6ZzegNsUNkM4aBQB_GA 密码:5y2t 毕姥爷的源码 链接:...
  • 不知不觉从初学Java到现在已经8年了,今天在这里给刚入门和入门不久的小伙伴们一些建议。可能总结的不是很详细,但给出了一个大概的学习路线。希望对大家有帮助哈~ 如何快速学Java 这里我以Java EE(Jakarta EE)/...
1 2 3 4 5 ... 20
收藏数 31,201
精华内容 12,480