我听说编程语言,经常使用的是其中20%的技术。在Java这门语言中,这20%包括哪些内容?参加培训两个月了,还有两个月的时间,要 想在两个月后,找到一份Java初级程序员的工作,有哪些是必须掌握的,有哪些是可以现学现卖的?一个完整的Javaweb项目,有哪些具体模块,每个模 块用到的技术是哪些?
常用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)的作者选择安乐死了,愿天堂没有痛苦
然后就是各种基础知识,编程语言、网络方面、数据库、数据结构和算法。不要觉得任何一项都精通了,敢说精通的知乎能有几个。
程序小白15年7月入职,成长中,可能不准确,仅分享下到目前的成长历程
2015年五月小白(有C基础),因为对自己大学专业不敢兴趣,遂临时抱佛脚学一个多月java,入职javaWEB开发至今,也算跟过两个大项目,自己独立开发了n个功能(大牛们憋笑话我),暂时没听过题主提到的20%的说法。
说说自己的感受吧,刚工作应该不会让你独立开始新项目,应该会让你跟正在开发中的项目
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完成不了的事。
6. 自己感觉做web项目设计高深算法的可能做的比较深才会遇到,更多的是对字符串和数值格式的操作,比如后台从数据库抽出来到前台怎么展示,用户输入的数据 怎么怎么存到数据库里,所以最好熟悉下字符串的操作,分割呀合并呀,String转float、int什么的,日期格式呀什么的。
如果公司有专业运维,服务器部署什么的交给他们就好了,如果没有就最好还是了解下,远程连接呀,linux的一些简单的命令呀,tomcat呀什么的
首先题主说的20%我不知道从哪方面去理解。接下来我会将自己多年来工作中会经常使用到的技术列出来。
1.html、css
2.java工作原理(jvm)
3.java语法、数据结构和算法
4.java语言特性(封装、继承、多态、抽象)
5.java设计模式(在开发中会经常用到)
6.java反射机制(常用框架都会用到反射机制)
http://7.io(文件读写)
8.多线程
9.网络编程
10.javascript
11.jquery
12.数据库(oracle、mysql等等)
13.servlet
14.JDBC
15.javabean
16.WEB项目分层架构
17.前后台交互
18.ajax
19.过滤器及过滤器原理
20.常用框架(Struts、hibernate、spring、springMVC、i/mybatis)
21.框架整合
22.工作流(流程引擎工作机制)
23.xml、properties、json
24.常用页面以及后台插件(tree、时间、poi等等)
25.nosql数据库以及应用场景(mongoDB)
26.缓存数据库以及机制(redis、memcached)
27.第三方接口调用
28.SDK
29.web应用服务器(tomcat、weblogic)
30.linux
31.日志
32.数据库连接池
33.maven
34.svn
35.建模工具(powerdesiner、axure)使用
36.TCP/IP

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

本文使用lambda表达式,流API,方法参考和可选探索将功能编程集成到Java中。 它突出显示了通过简洁性和不变性改善代码可读性和可维护性等好处

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用选择器和频道使用单个线程有效地处理多个连接的Java的NIO API,用于非阻滞I/O。 它详细介绍了过程,好处(可伸缩性,性能)和潜在的陷阱(复杂性,

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文详细介绍了用于网络通信的Java的套接字API,涵盖了客户服务器设置,数据处理和关键考虑因素,例如资源管理,错误处理和安全性。 它还探索了性能优化技术,我


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境