Java程序员需要了解哪些技术?

Posted Java入门到如风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序员需要了解哪些技术?相关的知识,希望对你有一定的参考价值。

Java程序员需要了解哪些技术?Java程序员常用的技术有哪些?在学习Java的时候,可能需要学习的知识点有很多,但在工作当中,实际经常用到的可能只有20%。下面就帮大家罗列一下Java程序员需要了解的主要的技术知识有哪些。

Java程序员常用的技术:

1.一些Java最常用的包、类:例如String、collections(List/Map/Set)、IO、网络;

2.常用的库:common库、guava库;这些都值得研究源码;(guava库是有一次我在做接口调用的限流时找到的,大名鼎鼎,只是我孤落寡闻)

3.多线程:synchronized、lock、volatile、线程池;

4.JVM:内存模型、内存管理、堆和栈、垃圾回收;

5.常用的设计模式:工厂、单例、代理、策略、门面、观察者等;不要为了用而用;熟悉设计模式方便阅读其他框架的源码;

6.JDBC、异常处理、反射、序列化、Annotation、Cache;

7.熟悉每个Java版本的新特性。

8.Spring的大多数框架,都值得一学。我就把它们放在一类里面了Spring、Spring MVC、Spring boot;

9.ORM框架:Hibernate、Mybatis、JPA;在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

10.各种常用的数据库连接池:DBCP、C3P0、HikariCP、Druid(我们现在用这个);

11.各种消息队列:我们用到的是RabbitMQ和Kafka;

12.关系型数据库:这个根据项目来吧,mysql或Oracle或DB2

13.非关系型数据库:MongoDB、Redis(可以当做缓存用);

14.微服务框架:Dubbo或Spring Cloud,我们是用后者,里面的内容非常多;

15.接口:Restful

16.安全认证框架:Shiro、Spring Security;

17.项目构建工具:Maven;

18.版本控制工具:Git、SVN;

19.自动化部署:Jenkins;

20.容器:Docker;

21.负载均衡:nginx、LVS;

22.Devops

Java程序员常用的技术有哪些?以上内容是Java程序员常用的技术,需要我们熟练的掌握和不断地提升才能成为一名优秀的Java程序员。

初学者怎么学Java编程 需要了解哪些核心技术

初学者怎么学Java编程?需要了解哪些核心技术?Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

每次看到网上有很多想学习java技术的小伙伴都在寻找一些书籍和视频,作为一个初学者,该看怎么样的书籍比较适合呢?或者说,如何才能轻松入门又能深入学习呢?当然了这不是一本书就能解决的事。下面千锋先给大家分享一下《Java核心技术》这本书,将学习的一些感想跟大家聊一聊。

 

技术图片

 

?

一、 Hash Code方法默认是调用该对象的地址,如果你重写了equals方法应该重写hash Code方法,例如你的equals方法是比较的对象的ID,就用该对象的ID来hash。

二、 instanceof并不完美,不能够查出父子类,所以在写equals方法的时候应该比较下是否同一个类。。

三、 String类和包装类的值都是不能改变的,所以如果希望实现它们的引用传递需要使用StringHolder类和包装类的Holder类,例如:IntHolder。

四、 C#中的委托可以用JAVA中的反射invoke方法传递方法指针method完成。

五、 不要使用protected修饰field因为整个包内都可以访问,破坏了封装性。

六、 throwable接口的实现类有2个分支,一个是error,一般情况JAVA系统的内部错误或者资源耗尽,对于它,除了通知用户错误和让用户安全退出外别无他法。还有一个是exception,又分为Runtime Exception和非Runtime Exception。由于程序的错误导致出现的异常称为Runtime Exception,这种问题应该在程序中解决和避免,不应该抛出异常。而曾经能够正常运行,在某些时候可能会出现导致的异常称为非Runtime Exception,这种问题的解决应该抛出异常。常见的Runtime Exception有类型转换错误、数组越界、空指针等。如果出现Runtime Exception就一定是你的问题。Error和Runtime Exception称为未检查异常。而非Runtime Exception称为已检查异常。

七、 要使用精确的浮点运算请使用Big Decimal。除法的时候注意使用小数位,否则会导致得不到精确值错误。

八、 建议不要在程序中使用char,因为char使用的是utf-16编码。

九、 三种处理错误的机制:异常,日志和断言。java默认关闭使用断言,想使用应该在运行的jvm参数中使用-ea。例如:int x= 5;要判断x是否大于0可以使用assert x>0 : x;断言不应该使用在程序发生了可恢复性错误。断言只能用在开发和测试阶段。是一种战术性工具,而日志才是贯穿整个生命周期的策略性工具。

十、 序列化除了能够保存简单对象以外,对复杂对象也有很好的处理方式,比如如果在几个对象共同引用一个共享对象时,就不会把这个共享对象保存几次,而是检查是否已经保存这个共享,如果没有则保存,如果已经保存,则保存一个该对象的序列号。

十一、 泛型可以单独在非泛型类中使用,例如下泛型方法:public static void test(T t){},而且泛型可以使用多个接口,例如:public statci void test(T t){}。可以使用泛型限定超类,它与限定子类相反,例如:public class Pair,但是他可以向方法提供参数,不能使用返回值。 一般的,带有超类的泛型可以向对象写入,带有子类的泛型可以从对象读取,例如:public static> T min(T[] a){}。

只有掌握真正的Java开发技术,才能逐渐成为高级Java开发工程师。Java开发的前景是毋庸置疑的,如果想进入这个“吸金”的领域,选择专业的学习方式是明智之举。

以上是关于Java程序员需要了解哪些技术?的主要内容,如果未能解决你的问题,请参考以下文章

Java程序员需要了解哪些技术?

JAVA面试总结

面试JAVA程序员最基本的面试题都有哪些?

Java 面试题 —— 老田的蚂蚁金服面试经历

java开发微信小程序的框架,附面试答案

Java开发进大厂面试必备技能,图文详解!