Java程序员最常用的技术有哪些?
▍Java程序员最常用的技术有哪些?
简单罗列~希望对你的工作及发展有帮助哦~
一.Java模块重点技术
1.数据库
关系型数据库:mysql
缓存型数据库:redis、mongoDB
2.框架
spring、mybatis、springBoot、springCloud
3.开发工具
项目构建工具:maven
版本管理工具:git
开发工具:idea
接口测试工具:Postman
4.消息中间件
rabbitMQ、kafka
5.23种设计模式
创建型模式(5种):工厂方法模式、抽象工厂模式、单列模式、建造者模式、原型模式。
结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、访问者模式、中介者模式、解释器模式。
6.jvm
jvm内存模型
jvm内存管理
7.持续部署、持续集成、持续交付工具jenkins
8.服务器:
linux
二.开发重点技术
1.单元测试
junit
2.json数据格式处理
Jackson、Gson、Fastjson
3.权限控制
shiro、spring security
4.远程调用
HttpClient
7.持续部署、持续集成、持续交付工具
jenkins
8.服务器:
linux
三、工作实用技术
1、java基础。
2、把jdk和jre区别搞清
3、lambda表达式,Stream,Optional使用
4、mysql增删改查常用语句,别写奇怪的sql语句,会建立索引,知道离散度低的字段不能建索引,如性别,建立了一般查询反而更慢
5、Windows常用快捷键
6、IntelliJ Idea常用快捷键
7、git常用命令,记得即使安装了Sourcetree等工具也坚持使用git命令,减少出错的概率
8、Navicat常用快捷键
9、chrome常用快捷键
10、Linux常用命令
11、阿里代码规范,重中之重!至少类名、方法名、数据库表、字段等命名一定要规范!
12、复制别人代码别留痕迹,仔细查查对方有没有犯低级错误。
13、信息检索能力
14、一些url ,配置信息,用户名,密码等,一旦别人告诉自己,就统一记在文本中,千万不要忘了然后每次问别人
15、知道@Autowired与@Resource区别,知道一些常用的注解,保持web层代码简洁清晰,千万别把service层的逻辑写在web层
16、会使用Mybaits,会用代码反向生成数据库表
17、知道常见的http请求错误码代表的含义如:200,404,503,500等
▍Java程序员最常用的技术有哪些?
计算机基础 :熟练掌握计算机网络、数据结构和算法、操作系统,了解计算机组成原理
Linux : 熟练使用 Linux,有 Linux 下开发的实际经验
Java:熟练掌握 Java 基础知识、Java 并发、JVM,有过 JVM 排查问题和调优的经历
数据库:熟练掌握 MySQL 数据库以及常见优化手段(比如索引、SQL 优化、读写分离&分库分表),Redis 使用经验丰富 ,熟悉 MongoDB,及oracle数据(存储过程,定时任务)。
搜索引擎 :熟练掌握 Elasticsearch 的使用及原理,熟悉 Solr 的使用
框架:熟练掌握 Spirng boot,Spring、Spring MVC、 SpringBoot、MyBatis、JPA、Spring Security 等主流开发框架
分布式:
熟练掌握分布式下的常见理论 CAP、BASE,熟悉 Paxos 算法和 Raft 算法熟练掌握 RPC(Dubbo)、分布式事务(Seata、2PC、3PC、TCC)、配置中心(Apollo)、分布式链路追踪(SkyWalking)、分布式 id(UUID、Snowflake)的使用及原理熟悉 Spring Cloud 全家桶常见组件的使用高并发&高可用 :熟练掌握消息队列 RabbitMQ的使用及原理 、有限流、降级、熔断的实战经验、
工具:熟练掌握 SVN、Maven、Docker
前端:熟悉 jquery,有 React、Vue 的实际开发经验
web容器:
Tomcat:是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器nginx:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器▍Java程序员最常用的技术有哪些?
作为一个在BAT有两年开发经验的JAVA工程师,我来聊聊我们在开发过程中最常用的技术。
框架
我们是开发平台服务的,最初使用的是SSH框架,后来改进为SSM框架。
好消息是随着SSM框架的流行,hibernate已经逐渐淘汰,因此我认为不会也罢。
但是你一定要对Spring,SpringMvc有所了解,比如其中控制反转,反射,以及各种注解的含义等等。
Mybatis有一个非常友好的插件叫mybatis generator,在eclipse和idea都可以使用,能够自动生成你需要的xxx
Mapper.xml
,xxxMapper.java,xxxEntity.java
与xxxEntityExample.java文件,对于基本的数据库操作,默认生成的文件足够用了。如果需要更多复杂的查询语句,自己在mapper文件里新增函数也是非常方便的。此外,随着maven的流行,目前大部分JAVA开发项目都会使用maven进行管理。这就意味着你还要了解pom文件是如何配置的,如何在maven文件中引入新的dependency。
除了SSM框架,还有springboot等等,这些都需要Java程序员有所了解。
接口
除了JAVA自带的简单的List,Set等等,你还需要了解第三方jar包提供的各种接口,以便在有需要的时候能够通过引入jar包来减少自己开发实现的工作量。举个例子,我们最开始的时候是使用Google提供的jar包来进行json处理,但是后来一个偶然的机会,发现如果字符串中包含不是用于json标志的中括号的时候,Google的json包会在读取json字符串的时候,把中括号后面的部分丢掉。我们尝试了很多的json的jar包,发现都有这个问题,最终发现只有org的jar包没有这个bug。
说实话,第一次发现这个bug的时候,还是有点兴奋的,毕竟这是第一次给谷歌发现问题。至于这个问题现在解决了没有,我也没有追踪,因为后续我们都统一用org的jar包来处理json了。
数据缓存技术
只要是做java平台开发,就绕不过缓存这个坎。过去常用的缓存有memcached,现在大多数已经用redis来代替。那么作为Java开发者就需要知道各缓存工具的优势,以及哪种更加适合自己的平台,确定缓存工具后,就要学习如何与缓存模块通信,如何存储数据,以及如何高效的读取缓存中的数据。
以上是我对JAVA程序员常用技术的浅见,欢迎各位在下方评论区留言沟通。
我是苏苏思量,来自bat的Java开发工程师,每天分享科技类见闻,欢迎关注我,与我共同进步。
▍Java程序员最常用的技术有哪些?
谢邀。我是极客宇文氏,很荣幸回答这个技术含量比较高的问题。
Java语言基础部分
毫无疑问最常用的是lang包,里面包含最基础的最常用Java类。
集合类,比如hashmap,arraylist,这两个封装数据结构几乎是编程必用。
线程类以及线程池相关类,这个不用多说,实现异步,实现线程安全,是个大学问。
Java主流中间件
Java系统最值得一提的就是各路神级中间件。
缓存:Redis毫无疑问是主流,缓存的使用各种各样,但是最终目的就是提供读取数据的便捷。
负载均衡:Nginx,不接受任何反驳。
数据库
MySQL,应用最广的数据库之一,中小型企业基本上都是用MySQL,轻量级数据库,简直为Java量身打造。
Oracle,有人说这才是应用最广泛的数据库,毕竟Oracle支持的读取并发量不是MySQL能比的。大数据量的大型系统必备。
框架
web方向的话,Java最常用的框架在国内便是spring,springmvc,mybatis,俗称“ssm”。
不过之前听说国外喜欢“ssh”,spring不变,其他两个是Struts,和hebnate。
▍Java程序员最常用的技术有哪些?
Java的技术体系是非常庞大的,需要我们学习的技术非常多,往往很多初学的人,通过互联网查阅了一个庞大的学习列表,然后不知道如何下手。网上很多大牛列的技术不是不重要,但是掌握住企业应用的Java的核心技术,快速上手,是一种高效的学习手段。结合本人十余年的项目研发和带人经验,整理出如下方面。
首先JavaSE是核心,这是初学Java人员应最先接触学习的部分。Java的运行原理,jdk的配置,与jre的区别,基本数据类型,流程控制(顺序结构、选择结构、循环结构),数组、集合框架,异常处理等,这些都是比较容易学习的,需要多练习,在练习过程中加强理解。面向对象部分是Java初学者,尤其是没有任何编程语言基础的学起来有些难度,类、对象、继承、封装、多态等技术点需要多参照些现有的设计模型,学习设计的思路。诸如工厂模式、观察者模式、代理模式等重要的设计模式也是需要学习的,否则在将来应用框架时就会只知其然,不知其所以然。IO流、多线程也一定需要学习,尤其是XML、JSON等文件格式一定要掌握,这在数据交互时常用。
其次是数据库知识,作为初级Java程序员必须要掌握一种常用的关系型书库的应用,如MySQL或oracle等,数据库对象诸如表、视图等的创建、增删改查语句,尤其是查询,在企业中经常需要从十几张表、或几十张表中查询数据,所以对于如何进行内连接、外连接、以及联合查询等一定要掌握,另外对于索引、事务等也要掌握。
第三是Java Web部分,由于Java主要做web开发,一些前端技术HTML3、CSS5,javaScript,jQuery等这些不见得要学得有多深入,但是必须要掌握,tomcat、jsp,以及和数据库的交互这些都是必须要掌握的。
第四是框架部分,主流的ORM框架有Mybatis、hibernate,MVC框架有Spring MVC、Struts2等,可以优先掌握主流的SSM框架组合,框架的学习有人认为很简单,就按照规定、规范调用、使用呗,初学者可以先学习如何使用这些框架,然后慢慢的探究内部原理,因为框架是技术封装、简化的产物。
这里面有些同类型的技术比如hibernate,如果会使用Mybatis了,那么上手就会很容易,同理如果Spring MVC框架应用熟练了,那么Struts2框架其实就可以现学现卖了。
一个web程序包含的模块很多,不一定包括所有模块。
系统模块:Windows、Linux系统等。
存储模块:这里既包括关系型数据库MySQL、oracle等,也包括内存数据库redis、memcached等。
程序模块:还可以细化成持久化模块、业务逻辑模块、表现层模块,MVC框架的实现。
搜索模块:应用solr或Elasticsearch等。
服务器模块:tomcat、weblogic、Resion等
中间件模块:nginx、MQ消息队列技术等。
在这里额外说一下技术和技能的区别,初学者学一个技术可能很容易,但是这个技术如何在企业开发环境中应用这就是技能了,所以在学习的同时,要多应用,最好通过一些案例项目来学习,这样既高效,学习的还扎实。
补充一点,现在的应用级别越来越大,海量数据、高并发是处理的重点,单应用的程序已经无法满足要求,分布式是趋势,Dubbo、Zookeeper、Docker、SpringBoot、SpringCloud、MyCat等技术,包括上面系统模块里提到的一些技术都要学习的。
------------------
推荐阅读:
如果《梦幻西游》倒闭了,你觉得藏宝阁中上万件无级别应该由谁来买单?