zoukankan      html  css  js  c++  java
  • java程序员应该掌握的技能

    这是看了一篇大神说的java程序员应该会些什么的文章,这里只是把应该掌握的技能部分列了出来。

    static、final、transient、volatile关键字,内部类,泛型等

    static最需要记住的一点就是类属性中被static修饰的变量,会被作为GC的root根节点。作为根节点就意味着,这一类变量是基本上不会被回收的,因此static很容易引入内存泄露的风险。static会将所应用的属性,方法以及内部类直接产生引用关系,而并非与类的实例,这是为什么可以使用类名.方法名就能引用的原因。如果没用static修饰内部类,那么声明内部类的时候就需要先生命外部类实例,在由外部类生命一个内部类实例。

    volatile关键字,重点就是 “可见性” 。要知道,可见性到底是什么意思,弄明白这个需要了解真么叫主存和工作内存。还有volatile并不保证同步。
    重要的是知道原理,不是只是会用。


    java运行时环境
    java运行时环境就是jre,本质是JVM。首先知道JVM与Hotspot的关系。JVM更多指的是JVM规范,而Hotspot是JVM的一种实现。可把JVM规范当做接口,Hotspot当做一种实现。这样好理解一点。

    JVM最重要的三个部分:内存划分、class加载机制、GC策略

    这里所说的内存划分,其实指的是Hotspot的划分方式,并不是JVM规范划分方式。

    Hotspot内存划分简单说分为三个部分:Young Generation(年轻代),Old Generation(年老代)、Perm Generation(永久代)。
    其中年轻代又分为三个部分(Eden,From,To)其中From和To统称为Servivor Spaces(幸存区)

    classloader加载机制,可以结合tomcat学习,了解清除tomcat的classloader机制,看tomcat如何保证各个APP之间的类隔离的。

    GC自己找地方看

    并发只是与concurrent包
    关于并发,最重要的概念要搞清楚:原子性、可见性。
    concurrent包中ConcurrentHashMap和普通的同步HashMap之间的区别。这个问题需要知道两个知识,一个是HashMap的数据结构,一个是锁分段的技术。
    concurrent包中有一个AbstractQueuedSynchronizer几乎所有的concurrent包内的并发工具类都是基于这个类,把这个研究透。
    ReentrantLock和synchronized关键字的区别,synchronized由于是底层JVM实现的互斥,因此效率更高一些,而ReentrantLock的功能更多。
    并发是java程序员进阶的重要部分。。。。。。


    设计模式和反射
    设计模式:http://www.cnblogs.com/zuoxiaolong/category/509144.html
    反射:reflect包

    文件IO,NIO、网络IO以及网络协议
    tomcat有多种协议的实现、其中包扩了BIO、NIO、和APR,这三者一定非常他们的 区别,这个可以在connector的protocol属性配置
    网络IO就是net包里的东西
    网络协议也要理解。TCP:重试机制,三次握手,TCP和UDP的区别


    spring、mybatis框架

    Linux服务器:文件系统、网络、IO

    数据库优化

    消息服务:rabbitMQ、activeMQ、rocketMQ。精通原理

    缓存服务:memcached,redis

    负载均衡

    数据结构与算法

    计算机操作系统

    计算机网络

    熟练使用一种脚本语言:如:Python

    gitlub和博客

  • 相关阅读:
    SQL Server的AlwaysOn错误19456和41158
    kvm上的Linux虚拟机使用virtio磁盘
    利用HAProxy代理SQL Server的AlwaysOn辅助副本
    KVM安装部署
    ola.hallengren的SQL Server维护脚本
    在单链表的第i个位置后插入一个节点(阿里+腾讯等面试题总结)
    怎么发现RAC环境中'library cache pin'等待事件的堵塞者(Blocker)?
    php unserialize 返回false的解决方法
    千万别让这些举动断送了你的职业前程-好文共分享
    Android开发:仿美团下拉列表菜单,帮助类,复用简单
  • 原文地址:https://www.cnblogs.com/badboyf/p/6039114.html
Copyright © 2011-2022 走看看