JAVA学习知识点

来源:互联网 发布:阿里云 代码 code 编辑:程序博客网 时间:2024/04/29 13:09

JAVA学习知识点

该文档是博主从自己的学习中总结出来的,主要为b/s,仅作参考

java基础

  • 面向对象思想
  • Java运行机制以及JVM原理
  • 面向对象的特征:封装、继承、抽象、多态
  • 数组和容器:容器的线程安全问题
  • I/O和NIO:NIO工作原理和应用
  • 高并发:concurrent
  • java线程
  • java反射

    ps:虽然java封装了list,map,set等,但个人觉得还是应该学习数据结构.

现在大部分人一味的追求框架的运用,但真正能提升自我的还是对java本身的深入理解,所以说不要忽略了java基础。

这里分享几个学习网址(来源知乎)

jvm

  • Java JVM:内存结构和相关参数含义
    https://github.com/pzxwhc/MineKnowContainer/issues/24
  • Java JVM:内存溢出
    https://github.com/pzxwhc/MineKnowContainer/issues/25
  • Java JVM:垃圾回收
    https://github.com/pzxwhc/MineKnowContainer/issues/26
  • Java JVM:编译加载机制与自定义类加载器
    https://github.com/pzxwhc/MineKnowContainer/issues/27

多线程

-Java 多线程:多线程生成的原因(Java内存模型与i++操作解析)
https://github.com/pzxwhc/MineKnowContainer/issues/6
- Java 多线程:生产者消费者问题
https://github.com/pzxwhc/MineKnowContainer/issues/8
- Java 多线程:Lock接口(接口方法分析,ReentrantLock,ReadWriteLock)
https://github.com/pzxwhc/MineKnowContainer/issues/16
- Java 多线程:Condition关键字
https://github.com/pzxwhc/MineKnowContainer/issues/10
- Java 多线程:synchronized 关键字用法(修饰类,方法,静态方法,代码块)
https://github.com/pzxwhc/MineKnowContainer/issues/7
- Java 多线程:volatile关键字
https://github.com/pzxwhc/MineKnowContainer/issues/11
- Java 多线程:ThreadLocal关键字
https://github.com/pzxwhc/MineKnowContainer/issues/12
更多请见知乎网 https://www.zhihu.com/question/19851109

java中级

  • 序列化:xml、json的序列化与反序列化
  • jdbc:数据库操作
  • jsp
  • servlet:可与jsp 一同学习
  • webService:jdk自带的webService框架,主要学习如何发布与运用三方服务
  • 设计模式

java高级

  • ORM框架:hibernate、mybatis等
  • EJB:虽然ejb很繁重,但是目前还是有企业运用EJB,作了解即可
  • Spring:目前主流的框架,主要学习IOC、AOP、Spring MVC
  • Struts
  • webService:学习webservice框架,目前运用广泛的是CXF
  • 工作流:推荐学习Activity
  • 缓存:目前运用广的是redis、EHCACHE
  • 权限管理框架:推荐学习shiro,现在用spring security 的也有,不过个人觉得shiro更适合开发者
  • 搜索:solr、lucene,推荐学习solr
  • 分布式:zookeeper、dubbo、spring service
  • Linux基础,虽然我们不是运维,但是Linux基础是必不可少的。ps:上述的solr redis dubbo zookeeper都是在linux环境下搭建
  • Nginx:运用:反向代理,负载均衡等
  • 数据库:sql,视图,存储过程等
  • 协同开发:svn,git
  • maven
  • Hudson、Jenkins
  • Netty:java nio 框架,如果没有需求,可不做深入研究(个人意见)

web基础

要做b/s开发就得具备基本的web开发能力,如html,css,js等。

  1. 掌握html,css等,不要求要能自己运作,做出界面,后台开发只需要掌握,能看懂就行了。
  2. 掌握js基本语法、js操作dom元素,掌握jquery。

ps:企业里一般会有专门的前端人员,所以要求不高,但是前端不能帮你完成后台与前台的数据交互,所以必须掌握基本的技能。

企业有感

这里分享下,博主在企业里的一些总结

  • 在企业里,一般分工很明确,举个列子,一家只有20人的公司里面都是前端、后台、设计、产品、需求,每块一人,麻雀虽小,但五脏俱全,所以不用太过注重自己在各个领域的成就。
  • 一般颇具规模的企业,都有一套试于自身的敏捷开发的框架,一般企业会对新进员工进行框架培训和业务培训,所以不用太担心是否熟悉公司业务框架等
  • 在企业里,大家都是各司其职,大家时间都有限,所以自学能力以及解决问题的能力很重要,一定要养成查看api文档的好习惯,从api文档中来解决问题等。(ps:程序员人都很好,都乐于助人)
  • 思想是最重要的东西,现在企业往往反感培训机构出生的程序员,因为培训机构是注重的是学员就业问题,在对学员的培养上往往是按部就班。博主现在的公司老总给我说的,他宁可要一个不会的学生来自己培养,也不要一个培训机构出来的。(ps:以上是博主从公司所了解的,不属于博主个人观点)
  • 建议多去了解apache的开源框架
  • 建议多去github上浏览别人发布的资料,同时也可以写一些好的文章或者项目发布到github上
0 0