面试题:Java程序员最常用的20%技术 !=!=未看

首先常用api(String,StringBuffer/StringBuilder等)

1.集合类,线程类

2.Servlet(很少用纯粹的servlet写,但你要懂,因为很多框架都是基于servlet封装的)

3.json,xml读写

4.数据库访问(CRUD,事务,连接池)

5.http请求(HttpClient)

6其他,包括常用框架,设计模式,面向对象

初级程序员会这些就可以写项目了。后期遇到的问题就会复杂得多,要靠各种经验和知识的积累。

除了要掌握的20%以外还要掌握些什么知识才能游刃有余。下面说说我接触(使用)过、的东西吧。

java以分布式应用丰富的生态闻名,在分布式系统中逃不过CAP的抉择。早早了解一些分布式一致性协议paxos、raft等。学习zookeeper的原理和使用场景(metadata、分布式锁、leaderEletion… etc)

RPC框架在SOA架构中起着重要的作用,好好探究终是有好处的,在这里推荐阿里巴巴的dubbo框架,同时会netty、mina等网络库

Hadoop系列 Storm Spark 等离线\实时计算框架

ElasticSearch\SolrCloud 分布式搜索 ELK 日志相关的东西对这些比较敏感,当然在更多的场景使用ES也是有很多的

消息队列 kafka\MetaQ RabbitMQ 恩,昨天ZeroMQ(不完全算作MQ)的作者选择安乐死了,愿天堂没有痛苦

然后就是各种基础知识,编程语言、网络方面、数据库、数据结构和算法。不要觉得任何一项都精通了,敢说精通的知乎能有几个。

1.学会使用eclipse,svn等IDE和工具(不用说了吧,主要是看你工作的地方,比如大家用eclipse你想用IntelliJ IDEA也可以,但是刚工作肯定很多不懂,这时候暂时还不要标新立异的好,出了问题好问。当然你是ide大神请无视)

2. 刚入职还接触不到核心工作,就让我先改改页面什么的,作为web开发html、css、和javascript不用精通,至少需要了解用法和语法吧,虽然 有前端工程师,但是这个肯定也是要了解的(自己公司小项目组,各个都被逼成全栈了)。javascript其实还是很强大的,但是刚开始不用写的很深,很 多轮子可以用,比如easyui,正如@王大胖 所说的

会查阅官方文档

知道用法往网页里嵌,然后后台按格式把数据传到前台就好。

3. 然后开始逐步往后台写了,熟悉下设计模式,如果太多太难理解可以先理解工厂模式,写一个接口再用一个或若干个实现类实现这个接口,需要用的时候在根据需要 来确定用哪个实现类。(一开始不理解这么做这么繁琐有什么用,但是自从上次项目的数据库从oracle换成mysql就知道这么做其实大有用处)一般项目 开发都会用到设计模式,不了解可能会摸不清楚整个项目的架构,无从下手。

4.不同公司用的框架不一样,但struts,spring还是用 的比较多的,所以这两个东西还是比较熟悉的好,不然你可能连整个项目的架构都不清楚,不要说自己写,连改都很难入手。比如项目的跳转是怎么配的,哪个配置 文件代表了什么。(一开始我把项目本地跑起来以后我连主页在哪是哪个文件怎么进去的都不清楚T.T,一直在找index.jsp然后才知道项目用 freemarker做的,是一个ftl文件)

5.web项目要操作数据库的工作是少不了的了,自己跟的项目没用hibernate,主要用的是StringBuffer拼接sql,如果从事web开发,sql还是要比较熟的。按带我的小哥说,sql这么厉害,就没有sql完成不了的事。

<!–(这句正确与否观望中,但是一开始做一个抽取功能,自己把所有的人抽到程序里再抽,后来直接用sql抽了返回抽中的结果就好了,越用越发现sql真的猴犀利呀)–>

提醒,不应该用sql在数据库里做太多事,具体解决方法可以参考之前提的另外一个问题

请问多个功能需要同批数据是在程序里面遍历好还是sql数据库返回好? – 编程

但是sql的重要还是不言而喻的

6. 自己感觉做web项目设计高深算法的可能做的比较深才会遇到,更多的是对字符串和数值格式的操作,比如后台从数据库抽出来到前台怎么展示,用户输入的数据 怎么怎么存到数据库里,所以最好熟悉下字符串的操作,分割呀合并呀,String转float、int什么的,日期格式呀什么的。

如果公司有专业运维,服务器部署什么的交给他们就好了,如果没有就最好还是了解下,远程连接呀,linux的一些简单的命令呀,tomcat呀什么的

当然作为一个提供分布式服务接口的java工程师,需要熟练具备以下技能点:

1、java基本语法:最好能偶尔使用java8 lambda简化代码逻辑,google的guava库等等

2、docker基本使用:如今越来越多的公司选择将服务部署在docker上,构成独立的服务云平台,而且docker操作和资源调度分配很爽的。

3、消息队列:kafka、rabbitmq、notify、metamq等等,消息队列作为处理高吞吐量,不计较及时结果的应用场景的工具非常受欢迎。所采用的实际应用手法就是消息队列+补偿机制。

4、zookeeper或Etcd:这俩种都是分布式服务提供服务的注册中心,通过它们可以实现多服务多机器部署且实现负载均衡。

5、RPC:远程调用的场景使用越来越广泛,特别在分布式服务中更加离不开它。它能使多个服务间的调用如同调用本地方法一样简便。针对RPC的实现使用较为广泛的有Thrift、protobuffer等。

6、Netty:是一个高性能、异步事件驱动的NIO框架。能为RPC提供高性能的调用

7、git和maven等项目管理及依赖包管理的工具,这是协作开发的基础。

8、Redis:差点忘了这个必知必会的技能...Redis作为高性能的内存数据库,基本覆盖了访问量大的服务缓存。当然memcached前几年用的也居多,不过功能可被Redis替代。除了缓存也可以提供分布式锁机制。

最近去面试Java的东时学员整理:

0、 集合框架:源码阅读,重点理解 HashMap,ArrayList 等常用集合类;

1、 并发包:理解 ConcurrentHashMap 原理,线程池,异步并发,锁;

2、 IO / NIO;

3、 Java SE 基础:主要是一些基本概念和语法细节,如 equals 和 hashcode 作用,访问修饰等;4. SSH 框架:IoC 和 AOP 的原理,涉及概念有动态代理和反射;

5、 设计模式:常见的会画 UML,例如徒手撸各种单例实现,JDK 里面涉及的设计模式;

6、 Socket 编程。

当然,你去的话也可能不是这些,大体上脱离不了这些范围内的知识点,在编程工作中需要的,你自然会去学,不必局限自己必须学会什么才能工作,但是,这些20%的基础你必须掌握。

原文地址:https://www.cnblogs.com/shan1393/p/9017419.html

时间: 2024-10-14 07:03:49

面试题:Java程序员最常用的20%技术 !=!=未看的相关文章

Java程序员最常用的20%技术总结

我听说编程语言,经常使用的是其中20%的技术.在Java这门语言中,这20%包括哪些内容?想找到一份Java初级程序员的工作,有哪些是必须掌握的,有哪些是可以现学现卖的?一个完整的Javaweb项目,有哪些具体模块,每个模 块用到的技术是哪些? 常用api(String,StringBuffer/StringBuilder等) 1.集合类,线程类. 2.Servlet(很少用纯粹的servlet写,但你要懂,因为很多框架都是基于servlet封装的). 3.json,xml读写 4.数据库访问(

转:Java程序员最常用的8个Java日志框架

作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在运行维护阶段,日志系统又可以帮我们记录大部分的异常信息,从而帮助我们更好的完善系统.本文要来分享一些Java程序员最常用的Java日志框架组件. 1.Log4j – 最受欢迎的Java日志组件 Log4j是一款基于Java的开源日志组件,Log4j功能非常强大,我们可以将日志信息输出到控制台.文件.

分享:想要成为Java程序员都需要掌握哪些技术?

随着<2018年中国大学生就业报告>出炉,计算机相关专业的高就业率引起了人们的关注.为了能够实现高薪,越来越多的非专业人士转行从事编程开发,Java作为最受欢迎的编程语言成为人们的一致选择! 想要成为一名优秀的Java程序员,不能像无头苍蝇一样乱转,一些关键技术的掌握是非常重要的,比如说×××老师分享的这九点: 一.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.

Java程序员最常用的6个代码对比工具,架构师一定收藏

在Java程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,那么今天在这篇文章里我们给大家介绍六款程序员常用的代码比较工具,希望对大家会有帮助. WinMerge WinMerge是一款运行于Windows系统下的文件比较和合并工具,使用它可以非常方便地比较多个文档内容,适合程序员或者经常需要撰写文稿的朋友使用.WinMerge会将两个文件内容做对比,并在相异之处以高亮度的方式显示,让使用者可以很快的查知:可以直接让左方的文件内容直接覆盖至右方,或者反过来也可以覆盖.Diffuse

java程序员应该熟练掌握的技术

1. JSON数据的读写,以及字符串,JAVA对象互转 常用的JSON库,:gson, json, 利用JSON构造,树结构等等,应用 2. xml, properties 配置的读写解析, properties文件的解析,可以使用 java.util.Properties 来读写 xml文件的解析,DOM,SAX,方式解析,常用的库 dom4j, jdom apache digester: 这个库可以将 xml 文件 转换成 java 对象.tomcat 在解析 web.xml 时就用的这种方

Java程序员最常用的8个Java日志框架

1.Log4j – 最受欢迎的Java日志组件 Log4j是一款基于Java的开源日志组件,Log4j功能非常强大,我们可以将日志信息输出到控制台.文件.用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程.更值得一提的是,Log4j可以允许你非常便捷地自定义日志格式和日志等级,可以帮助开发人员全方位地掌控日志信息. 官方网站:http://logging.apache.org/log4j/2.x/ 下面是使用Log4j的一个简单例子: 2.gclogviewer – Java日志查看工

Java程序员 必须掌握的 20+ 种 Spring 常用注解

注解本身没有功能的,就和xml一样.注解和xml都是一种元数据,元数据即解释数据的数据,这就是所谓配置. 本文主要罗列Spring|SpringMVC相关注解的简介. Spring部分 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller 在展现层使用,控制器的声明(C) 2.注入bean的注解 @Autowired:由Spring提供 @Injec

阿里P8架构师谈:2019的Java程序员要怎么提升?拿30K高薪?

最近去阿里的菜鸟国际做了一次面试交流,发现大公 阿里P8架构师谈:2019的Java程序员要怎么提升?拿30K高薪?司对于面试者的知识结构考核非常严谨,可以作为我们日常工作学习的指导.虽然很多人说面试问到的东西在实际工作中很少用到,甚至有「面试造火箭,工作拧螺丝」的说法.但从面试中,其实可以看得出来现在的公司对于面试者的知识体系要求.如果我们能在工作中就按着这样的要求去不断提升,那么在面试的时候必然也能游刃有余. 具有一到五年开发经验的程序员 需要学习的内容? 技术学到这个阶段,很容易遇到瓶颈,

Java程序员面试题集(1-50)

下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最新版本,去掉了EJB 2.x等无用内容,补充了数据结构和算法相关的题目.经典面试编程题.大型网站技术架构.操作系统.数据库.软件测试.设计模式.UML等内容,同时还对很多知识点进行了深入的剖析,例如hashCode方法的设计.垃圾收集的堆和代.Java新的并发编程.NIO.2等,相信对准备入职的Ja