「java实际开发」java实际开发中会jvm调优吗
今天给各位分享java实际开发的知识,其中也会对java实际开发中会jvm调优吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java语言在实际开发工作中能用到些什么技术呢?
- 2、java开发在实际工作中需要用到哪些技术?
- 3、什么是JAVA开发
- 4、java实际开发中常用的技术有哪些?
- 5、JAVA开发过程中需要注意那些问题?
Java语言在实际开发工作中能用到些什么技术呢?
java语言的基础在实际开发中基本都会用到。
除此之外,还需要掌握web技术,
struts2,
spring,
hibernate,
tomcat,
oracle,mysql
,memcached
等。
java开发在实际工作中需要用到哪些技术?
这些足够了。
java开发工作的初级程序员,需要掌握的技能我整理一下:
java语言基础
常用框架(SSH)不需要了解底层,只需要了解如何使用
JS语法基础(js的Ajax)
Jquery使用基础(Jquery的Ajax)
基本的html语法至少要能看懂
CSS也要看懂一点
数据库了解oracle和mysql
会写增删改查语句以及关联查询
存储过程,触发器(这个不需要一定会,但是了解最好)
以上都达到可以上手的层次,就能拿下初级java程序员的岗位了。
祝你学习顺利
什么是JAVA开发
Java开发主要是利用Java编程语言,来编写程序,实现某些需求。
Java是一门面向对象编程语言,自1995年发布到现在已风靡全球20余年。Java作为半编译语言,目前为中国市场运用最普及的开发语言,Java已经形成了一个生态常链,目前暂时没有其他语言可以代替Java的市场占有率。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。可以编写桌面应用程序、Web 应用程序、分布式系统和嵌入式系统应用程序等。
在所有软件开发类人才的需求中,对 Java工程师的需求达到全部需求量的60%-70%。Java工程师人才缺口大,根据IDC的统计数字:我国Java人才的缺口已达42.5万,并且以每年20%左右的速度增长。Java工程师就业职业广泛,发展空间大,薪水相对较高,通常来说,具有3-5年开发经验的工程师,拥有年薪20万元是很正常的一个薪酬水平。
java实际开发中常用的技术有哪些?
RMI: java自身提供的用在分布时对象之间的通信机制。(类似于RPC)
RMI-IIOP: RMI的可移植扩展,可以实现JAVA与CORBA的集成。
JDBC: 用于数据库访问的通用接口。
JTA,JTS: 用于提供事务处理的支持。
JMS: java消息服务。可以连接已有的面向消息的中间件,例如:MQSeries,MSMQ。
Java Servlet: 用来扩展Web服务器功能的网络组件。基于请求/响应机制。
JSP: Java与HTML混合编程,类似于ASP。
JavaIDL: Java对COBRA的实现,允许与其他预言集成。且能让分布式对象利用CORBA提供的全面服务。所以J2EE与CORBA完全兼容。
Java Mail: 平台无关,协议无关地发送邮件。
J2EE连接器架构: 自动管理现有系统和中间件之间的诸多细节。
JAXP: Java操作XML。
JAAS: Java的用户认证支持。
EJB: J2EE中最重要的部分,实现组件式开发的基础。可以在多层的分布式环境中部署的服务器端软件组件。
JNI: (Java Native Interface)
声明Native代码,用C/C++实现它。可以实现:
1、 使用标准JAVA不支持的功能,例如访问Win32API。
2、 重用其他语言编写的库或应用程序。例如大量的C库。
3、 需要用低级语言编程时,例如汇编。
Oracle所实现的C底层代码与Java的无缝集成,就是JNI技术的很好例证。Oracle不单使用Java界面,还支持Java编写的存储过程。
JNDI: 用于访问命令和目录系统。
JNDI为底层命名或目录服务提供统一的API。可支持任何服务器名称,标准服务有:LDAP,NDS,CORBA,LDAP活动目录等。
J2EE终,可用JNDI发布下列组件:EJB,数据源(数据库),JMS消息队列。
JAVA开发过程中需要注意那些问题?
开发过程需要注意的问题有下面这些:\x0d\x0a\x0d\x0a1. 服务器端必须提供输入数据正确性的验证,客户端的Javascript验证可以没有。这是基于安全性的考虑,因为Javascript是很容易被绕过的,增加客户端验证只是为了减少服务器压力、界面更加容易使用。 \x0d\x0a\x0d\x0a2. 适度使用Session,尽量不要在Session里放很大的集合对象,以免内存消耗过大,因为很多用户访问的时候会产生很多的Session。参数传递应该尽量通过Request。熟悉HTTP有助于更好的理解Session、Cookie、Request等的机制。\x0d\x0a\x0d\x0a3. 在带有分页的查询界面,尽量不要使用POST方法来传递参数,POST传递的参数在地址栏里是看不到的,刷新后会有重新提交表单的提示。使用GET方法传递参数要注意URL的长度不能超过1K。 \x0d\x0a\x0d\x0a4. 分层应该清晰,一般目前我们分为View(Jsp或FreeMarker加上Action)、Bean(Service)、DAO这么三层,即显示层、业务层、数据层。记录集ResultSet这种只能出现在DAO层中的对象不能出现在Bean(Service)层中,同样HttpServletRequest这种只能出现在View层的对象也不应出现在Bean(Service)层中。这并不是绝对的。 \x0d\x0a\x0d\x0a5. 尽量使用简单SQL,避免两表以及多表联查。多表联查会导致数据库压力大幅增加,而且不利于在内存中对部分记录进行缓存,代码的重用性也难以提高。 \x0d\x0a\x0d\x0a6. 避免在循环里执行findXXById这样的方法,不如执行一个findXXByIds这样的方法一次性把记录取到Map里。大部分有实际对象对应的表应该提供这样一个方法。 \x0d\x0a\x0d\x0a7. 如果使用最原始的jdbc编程的话需要注意资源的正确释放,在循环里new出来的Statement或者ResultSet就要在循环里关闭。 \x0d\x0a\x0d\x0a8. 在编写SQL进行查询的时候,需要能够判断这个SQL是否已经使用了索引,避免全表扫描,必要的时候增加索引。 \x0d\x0a\x0d\x0a9. 在写一个方法前,首先查看有没有相同功能或者很类似功能的方法已经有了,尤其是工具类方法,往往已经写过了,避免重复代码的产生,发现重复代码及时进行处理。如果一段代码被重复使用两遍或以上,那么可以考虑专门写个方法来放这段代码,同样多次使用的常量也应该专门定义出来。 \x0d\x0a\x0d\x0a10. 在一个方法里并不一定只能有一个return,如果已经有结果了尽早return,没必要增加嵌套的层次,那样会导致代码可读性不佳,但也不能return太多,代码看起来比较舒服就可以了。 \x0d\x0a\x0d\x0a11. 不要满足于能够熟练的编写DAO和Bean(Service)的代码,相比较而言,后台如果在成熟框架的支持下,编码是没有太大难度的,也不值得沾沾自喜,因为这是对Java研发工程师基本的要求。适当的培养一下前台的编码能力,学会使用Dreamweaver。不要轻视界面,也别认为这是界面设计的事情,界面对用户来说就是软件,学会编写CSS和调整界面对你没有坏处。 \x0d\x0a\x0d\x0a12. 非常明确Java和javascript作用的范围,明确它们能做的事情。 \x0d\x0a\x0d\x0a13. 一般很奇怪的现象都是由一些低级错误引起的,如果你查了一段时间也没有结果,那么让别人来查吧。 \x0d\x0a\x0d\x0a14. 不要用可能被修改的字段来做主键,那样会让相关记录的更新成为一个大麻烦。 \x0d\x0a\x0d\x0a15. 如果被迫使用Hibernate和jdbc混合操作数据库的话,不要用Hibernate来做复杂查询和统计。Hibernate用的不好的话,带来的便利是非常有限的。 \x0d\x0a\x0d\x0a16. 数据库中经常被读取,但是很少修改的话,应该把这样的数据读到内存中用OSCache之类的缓存起来,然后定期或者触发的去更新,有助于减少读数据库次数,提升性能。 \x0d\x0a\x0d\x0a17. 编码的时候应该注意部署环境带来的影响,这种影响包括操作系统不同带来路径的差异;应用服务器和数据库服务器之间时间的差异;外网可能部署在多台服务器上,放到Session里的对象因为需要复制所以要实现java.io.Serializable接口等。 \x0d\x0a\x0d\x0a18. 尽量不要在jsp上编写太多代码,保持jsp的整洁很重要,用Dreamweaver打开不至于一塌糊涂,根本看不出来这是个什么界面。 \x0d\x0a\x0d\x0a19. 目前我们的项目一般都使用Spring来管理数据库事务,而且一般都配置在Bean(Service)即业务层这一层,应该注意要保持事务的完整性,不要把一些应该放在一起的操作分散在Action这一层。相关的更新操作可以认为是一个事务,比如:增加一个家长,同时更新学生是否有家长的字段。 \x0d\x0a\x0d\x0a20. 在Spring的配置中,对于有些需要保持独立事务的方法操作,比如生成主键等,应该声明该方法为独立事务ROPAGATION_REQUIRES_NEW。Bean(Service)里如果抛出checked exception,事务默认是不会回滚的,需要加以声明,比如PROPAGATION_REQUIRED,-PassportException。 \x0d\x0a\x0d\x0a21. 在一个Bean(Service)中引用其他Bean(Service)的时候尽量引用Bean(Service),而不是DAO。因为其他的Bean(Service)往往封装DAO的操作后,又做了进一步的完善,比如增加校验等,所以应该重用这些方法,而不必要去引用DAO的方法来重写这些操作。 \x0d\x0a\x0d\x0a22. 至少在Bean(Service)的接口定义上增加注释,方便他人引用你写的方法。 \x0d\x0a\x0d\x0a23. 好好利用集合框架里的Map、List、Set。尤其是HashMap、ArrayList、HashSet用的最多,这些类是多条数据操作的基础,它们都不是线程安全的。 \x0d\x0a\x0d\x0a24. 现在跑的快的页面,随着数据量的增加,可能会变的很慢,所以应该意识到页面可能变慢的原因,而不是现在看起来很快。影响速度的大部分原因是对数据库的压力太大了,在java代码执行上花费很多时间的情况是不常见的。 \x0d\x0a\x0d\x0a25. 避免不必要的跳转,如果页面执行的足够快,那么中间的载入进度提示页是不必要的,那样会让用户觉得闪烁。 \x0d\x0a\x0d\x0a26. 注意页面的文件大小,并不是每个用户的带宽都是非常理想的,文件小一点,速度快一点,总是感觉更好一点。 \x0d\x0a\x0d\x0a27. 不要去修改用户的浏览器,比如隐藏他们的地址栏、菜单、右键菜单等,这可能会引起部分用户的反感。尽量不要使用弹出窗口,可能会被拦截。 \x0d\x0a\x0d\x0a28. 网站的权限控制至少应该保证有访问权限的用户才能访问页面,通过隐藏链接之类的方法是很不安全的,用户看不见了并不表示安全了。权限的控制尽量使用框架里的拦截器这样的机制,而不是把权限控制代码写的到处都是。过滤器不宜过多的使用,不仅因为过滤器的作用范围很难控制,而且容易引起页面执行效果的混乱,错误不易排查。 \x0d\x0a\x0d\x0a29. 页面里大部分情况使用相对路径,保持Action路径层次和页面一致,这样应用就可以发布在各种目录下。
关于java实际开发和java实际开发中会jvm调优吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-21,除非注明,否则均为
原创文章,转载请注明出处。