java程序员,最常用的技术有哪些?
常用api(String,StringBuffer/StringBuilder等)
1、***类,线程类
2、servlet(很少用纯粹的servlet写,但你要懂,因为很多框架都是基于servlet封装的)
3、json,xml读写
初级程序员会这些就可以写项目了。后期遇到的问题就会复杂得多,要靠各种经验和知识的积累。
最重要的是良好的编码习惯,这个不是硬核技术,但事实是如果习惯不好,可能都没有继续工作下去的可能。我所谓的习惯指的是,标识符、类、接口、模块、坐标等命名习惯,代码的注释习惯,分库分表分层分包分模块的开发习惯等。
其次是对各种主流工具的使用,注意不是所有。符合市场上的主流就好,开发的ide上idea、eclispe,数据库操作上mysql、n***icat、sqlyog,服务器软件tomcat、
Java程序员最常用的技术有哪些?
从事JAVA web开发,具备三年工作经验,我来尝试回答这个问题,供读者参考。J***a程序员最常用的技术,从中可以看出J***a基础是先决条件,而要从事完整的J***a开发,数据库知识,框架开发能力是不可或缺的,而要升职加薪,与之匹配的JVM调优,常见框架和中间件的源码阅读拓展是一大加分项。
首先说J***a基础,最简单的语法、语句、使用场景等不必说,常用的类和方法、***数据结构(如set,list,map)使用常用方法字符串查找、正则匹配等等问题,还有异常处理、文件读写与解析,更高级的的多线程并发处理等,都需要去实践并有一定经验。
接着说数据库,没有数据库的J***a开发是无源之水,枯燥而乏味。这里的数据库指数据的载体,常见的mysql、orcale等关系型数据库,用作缓存的redis、memcached等key-value型数据库,用作文档类型存储的hbase,用作搜索引擎的elasticsearch,这些从广义上来说都可以作为数据库,要学会根据不同的业务场景灵活选用。与之相对应的安装、启动、可视化工具等都需要了解,其个别的实现原理和集群同步机制也需要有一定的认识。
再来说说用于J***a Web开发的框架,就我所用的、也是被广泛使用的轻量级的开源的J***a开发框架,不可不学,不可不会,强大的spring生态圈具备强大的生产力,从Spring MVC到Spring Cloud时不时有令人惊艳的产品,其完备的企业级解决方案受到各个[_a***_]的追捧,几乎不约而同的选择spring作为基础框架。在Spring的基础上,Spring Boot+Spring Cloud和Spring MVC+Dubbo,这两条主流的技术栈用到的相关技术也都是常用的内容。
再来说说JVM调优,用到的次数不多,但是面试过程中总会被问到,是一个定薪资水平的重要参考。JVM就是J***a虚拟机,与底层架构、操作系统联系紧密。JVM相关知识就与虚拟机、底层相关了,这部分知识包括:JVM内存模型和JVM内存管理,感兴趣的同学可以深入了解。
最后说说常见框架和中间件的源码阅读拓展,这部分的层次比较高,需要你对jdk源码有所了解,在此基础上看框架和中间件的源码,如Spring源码、Zookeeper的源码等,在读源码的同时,深入了解其实现原理和架构思想,读一些简单的spring-boot-starter,能够写自己常用的starter,这样就说明你读了,并且有所收获。
谢邀。我是极客宇文氏,很荣幸回答这个技术含量比较高的问题。
毫无疑问最常用的是lang包,里面包含最基础的最常用J***a类。
***类,比如hashmap,arraylist,这两个封装数据结构几乎是编程必用。
线程类以及线程池相关类,这个不用多说,实现异步,实现线程安全,是个大学问。
J***a系统最值得一提的就是各路神级中间件。
缓存:Redis毫无疑问是主流,缓存的使用各种各样,但是最终目的就是提供读取数据的便捷。
负载均衡:Nginx,不接受任何反驳。
MySQL,应用最广的数据库之一,中小型企业基本上都是用MySQL,轻量级数据库,简直为J***a量身打造。
框架: springboot
数据层: mybatis-plus
缓存数据库:redis
数据库mysql
web端服务器: Tomcat
前端,图片文件服务器: Nginx
负载均衡: Nginx
J***a的技术体系是非常庞大的,需要我们学习的技术非常多,往往很多初学的人,通过互联网查阅了一个庞大的学习列表,然后不知道如何下手。网上很多大牛列的技术不是不重要,但是掌握住企业应用的J***a的核心技术,快速上手,是一种高效的学习手段。结合本人十余年的项目研发和带人经验,整理出如下方面。
首先J***aSE是核心,这是初学J***a人员应最先接触学习的部分。J***a的运行原理,jdk的配置,与jre的区别,基本数据类型,流程控制(顺序结构、选择结构、循环结构),数组、***框架,异常处理等,这些都是比较容易学习的,需要多练习,在练习过程中加强理解。面向对象部分是J***a初学者,尤其是没有任何编程语言基础的学起来有些难度,类、对象、继承、封装、多态等技术点需要多参照些现有的设计模型,学习设计的思路。诸如工厂模式、观察者模式、代理模式等重要的设计模式也是需要学习的,否则在将来应用框架时就会只知其然,不知其所以然。IO流、多线程也一定需要学习,尤其是XML、JSON等文件格式一定要掌握,这在数据交互时常用。
其次是数据库知识,作为初级J***a程序员必须要掌握一种常用的关系型书库的应用,如MySQL或oracle等,数据库对象诸如表、视图等的创建、增删改查语句,尤其是查询,在企业中经常需要从十几张表、或几十张表中查询数据,所以对于如何进行内连接、外连接、以及联合查询等一定要掌握,另外对于索引、事务等也要掌握。
第三是J***a Web部分,由于J***a主要做web开发,一些前端技术HTML3、CSS5,j***aScript,jQuery等这些不见得要学得有多深入,但是必须要掌握,tomcat、jsp,以及和数据库的交互这些都是必须要掌握的。
第四是框架部分,主流的ORM框架有Mybatis、hibernate,MVC框架有Spring MVC、Struts2等,可以优先掌握主流的SSM框架组合,框架的学习有人认为很简单,就按照规定、规范调用、使用呗,初学者可以先学习如何使用这些框架,然后慢慢的探究内部原理,因为框架是技术封装、简化的产物。
这里面有些同类型的技术比如hibernate,如果会使用Mybatis了,那么上手就会很容易,同理如果Spring MVC框架应用熟练了,那么Struts2框架其实就可以现学现卖了。
一个web程序包含的模块很多,不一定包括所有模块。
存储模块:这里既包括关系型数据库MySQL、oracle等,也包括内存数据库redis、memcached等。
程序模块:还可以细化成持久化模块、业务逻辑模块、表现层模块,MVC框架的实现。
下面是我本人总结的工作中常用的!不仅仅是技术,还有工作中遇到的问题,使用的工具等!
技术:
多线程:synchonize加锁,forkjoin并行处理框架,j***a8的parelleStream并行流,线程池Executor,threadlocal本地线程!
设计模式:策略模式,适配器模式,修饰器模式,单例模式,工厂方法,建造者模式等等常用的!
微服务:有springcloud和dubbo两种最常用微服务框架,配合eureka,zuul,consul,hystrix等等对服务注册与发现,网关,服务熔断等!
消息队列:最常使用的有redis,kafka,rabbitMQ,activeMQ等,各种模型侧重点不同,性能也不尽相同!
缓存:redis(单线程排除并发干扰),memcache(轻量级,多线程),ehcache(常用做本地缓存)!
文件处理:File常用类,使用OSS工具上传,下载!POI生成pdf等类型文件!
spring:用做对象管理,spring aop用做***(日志,前置处理等),spring mvc成熟的web开发框架,springboot微服务!
j***a开发想要达到15k,需要掌握哪些技术?
谢谢邀请,我是陈睿(mike),曾任阿里/百度研发经理,携程定制旅游CTO。
IT行业通常按照初级、中级、高级来评定一个程序员的能力,不同等级的程序员薪酬不同,15K大概是一个中级j***a程序员的薪酬。中级j***a程序员需掌握的知识、技能如下(附知识技术图谱),供大家参考:
1、J***A基础
2、常用工具
3、Linux命令
4、中间件
5、开源框架
看完觉得有用的兄弟们,请顺手点赞。想要***原图的兄弟,关注并私信我要图谱,即可领取~
影响J***a程序员的因素有很多,除了本身的技术能力、学历学校,还有很多外部因素,诸如:地域、公司性质及规模、会不会写PPT,甚至运气都很重要。
比如,如果在北上深这些城市,程序员如果想达到15K,还是很轻松的,甚至一些只会CUDR的程序员,工作几年也会达到这个数字(当然,再往上会很困难);但如果在三四线城市的话,薪水达到15K会稍微困难一些。
当然打铁还需自身硬,技术水平提高了,薪资自然而然就能达到你期待的水平。
个人建议,技术能力的提高,主要抓两个方面,一个是基础的内功,一个是表面的外功。
太基础的我就不写了。
熟悉J***a常用的类,String、***、IO等,最好能看一下源码;