作为一个Java开发攻城狮(lao si ji),我可以负责任地告诉你,多看多写~
首先,鉴于题主你说你是刚接触地阶段,我并不推荐你你上来就要写工业级或者企业级的代码,当下的话应该是迅速积累项目经验,快速掌握java web的开发流程为主,可以网上看看什么视频教程,有些还是能学到规范的。
分享一下我的经历吧~
读大学的时候我接一些外包【朋友介绍】,一开始也很虚啊,觉得这里不对,那里不对的。写得多了,慢慢理解整个开发流程后,就觉得也就是增删改查嘛,没什么的。每次都要写,好麻烦啊,既然这样,不如自己造一些轮子,后来就是项目多了,又造了一些轮子,然后做了系列的封装。期间穿插读了 重构和effective java两本书,代码方法保持整洁,但一些代码上还是不规范。
再后来,学习了java的一些高级特性,反射、自省【提高了写代码250%的效率】以及参考了部分阿里的规范,感觉逐渐能写出比以前看上去优雅的代码了。
接下来的一段时间,因为兴趣的原因,研究了一下三大框架,自己强行撸了三个阉割版。回去看源码的时候,发现spring写得真的太优雅了,然后又小小改了一下风格。
最后,出来工作了,哦谢特~ 大家写得什么鬼啊~ 什么规范都不参照~ 简直内心爆炸,一万点伤害~ 好吧,我还是照着我原先的思路,搞一搞~
所以说,工业级、企业级代码不是每个公司都有,但是对自身有要求是好事啊~ 你也别急,慢慢写,也能逐渐规范起来~ 只是现在,不合适~ 加油~
还有问题的话,欢迎联系我~
B. android 开发 与 javaweb开发 区别
首先这个问题是个范围问题。
android开发是java开发的一个分支。你说的java类库是指标准类库吧。android种的类库有一部分和java类库基本一致,也就是类名一致。比如String,Integer这些,但是具体的实现都是改过的(还好改过的,不然和甲骨文打官司就惨了)。不过java种的swing这些类库在android种就没有了,也就是说android种只用了java种的常用的类库。你对java开发了解的话那么android很快就可以上手,只是熟悉api的一个过程而已。而且android开发比你用java开发web要简单容易很多,因为你不必了解太多的东西,只需要了解android方面就可以了,而不像做web你除了java还需要html,css,javascript,sql,甚至ssh框架,太繁琐了。说了这么多也就是说明android其实比一般的java开发还容易。区别不大,而且更简单。
现在分别理解一下什么是安卓开发和Java开发。
Android 平台是 Open Handset Alliance 的成果,Open Handset Alliance 组织由一群共同致力于构建更好的移动android开发。
android开发电话的公司组成。这个组织由 Google 领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。从软件开发的观点看,Android 正处在开源领域的中心位置。
市场上第一款支持 Android 的手机是由 HTC 制造并由 T-Mobile 供应的 G1。这款设备从设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的 SDK 发行版。随着 G1 发行日的临近,Android 团队发布了 SDK V1.0,用于这个新平台的应用程序也浮出水面。
为了鼓励创新,Google 举办了两届 “Android Developer Challenges”,为优胜的参赛作品提供数百万美金的奖励。G1 问世几个月之后,随后就发布了 Android Market,它使用户可以浏览应用程序,并且可以将应用程序直接下载到他们的手机上。经过大约 18 个月,一个新的移动平台进入公众领域。
2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。
2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。
2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。
2008年,在GoogleI/O大会上,谷歌提出了Android HAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。
2009年4月,谷歌正式推出了Android 1.5这款手机,从Android 1.5版本开始,谷歌开始将Android的版本以甜品的名字命名,Android 1.5命名为Cupcake(纸杯蛋糕)。该系统与Android 1.0相比有了很大的改进。
2009年9月份,谷歌发布了Android 1.6的正式版,并且推出了搭载Android 1.6正式版的手机HTC Hero(G3),凭借着出色的外观设计以及全新的Android 1.6操作系统,HTC Hero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)。
2010年2月份,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging tree”)上除去,从此,Android与Linux开发主流将分道扬镳。在同年5月份,谷歌正式发布了Android 2.2操作系统。谷歌将Android 2.2操作系统命名为Froyo,翻译完名为冻酸奶。
2010年10月份,谷歌宣布Android系统达到了第一个里程碑,即电子市场上获得官方数字认证的Android应用数量已经达到了10万个,Android系统的应用增长非常迅速。在2010年12月,谷歌正式发布了Android 2.3操作系统Gingerbread (姜饼)。
2011年1月,谷歌称每日的Android设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而Android系统设备的用户总数达到了1.35亿,Android系统已经成为智能手机领域占有量最高的系统。
2011年8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。
2011年9月份,Android系统的应用数目已经达到了48万,而在智能手机市场,Android系统的占有率已经达到了43%。继续在排在移动操作系统首位。在9月19号,谷歌将会发布全新的Android 4.0操作系统,这款系统被谷歌命名为Ice Cream Sandwich(冰激凌三明治)。
2012年1月6日,谷歌Android Market已有10万开发者推出超过40万活跃的应用,大多数的应用程序为免费。Android Market应用程序商店目录在新年首周周末突破40万基准,距离突破30万应用仅4个月。在2011年早些时候,Android Market从20万增加到30万应用也花了四个月。
第二:关于javaweb的开发:
詹姆斯·戈士林博士以"Java技术之父"闻名于世。
他是Java技术的创始人, 作为Sun研究院院士,他亲手设计了Java语言,完成了Java技术的原始编译器和虚拟机。在他的带领下,Java现已成为互联网的标准编程模式以及分布式企业级应用的事实标准,其跨平台的技术优势为网络计算带来了划时代的变革。戈士林博士积极致力于软件开发工具的研究,以使软件开发工具的功能更强大,更容易为开发人员所使用,确保应用、服务开发的迅速完成。
Java技术是Sun公司在1995年5月正式推出的。八年多来,Java已从编程语言发展成为全球第一大通用开发平台。Java技术已为计算机行业主要公司所采纳,同时也被越来越多的国际技术标准化组织所接受。1999年,Sun推出了以Java 2平台为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,在世界上形成了一股巨大的Java应用浪潮。同时,Java技术还引发了一场无法停止的大变革,为整个Java社团带来了巨大的潮水般的商业机会。
Java技术及其应用将有更大的发展。据IDC预计,自2001年起的其后5年内,采用Java的IT产品的价值将翻番,在2006年将达到4.53亿美元,年增长率为14.9%。截止到2003年5月,注册Java Developer Connection (JDC)的Java开发商超过300万人,对JRE(Java运行环境)的下载达7,200万次。Sun在JavaOne 2003大会上确定的目标是,在3~5年内使Java技术开发商从今天的300万发展到1,000万,以支持Java技术这一全球领先技术平台的显赫地位。
C. java web开发缓存方案,ehcache和redis哪个更好
java web开发缓存方案,ehcache和redis各有优劣势,对比如下:
1、适合使用ehcache的场景:
选用Ehcache作为数据存储服务器,Ehcache也是基于内存存储,支持定时持久化功能,非常适合存储像计数器这种小数据类型。处理Http请求使用Tomcat容器,结构图如下:
实现原理:处理逻辑采用一个servlet实现,并且在这个servlet中通过一致性Hash从Ehcache中获取计数器值。
2、高并发并且对实时性要求高的场合下使用redis
redis
redis是在memcache之后编写的,大家经常把这两者做比较,如果说它是个key-value store 的话但是它具有丰富的数据类型,我想暂时把它叫做缓存数据流中心,就像现在物流中心那样,order、package、store、classification、distribute、end。现在还很流行的LAMP PHP架构 不知道和redis+mysql 或者redis+ mongodb的性能比较(听群里的人说mongodb分片不稳定)。
先说说reidis的特性
1. 支持持久化
redis的本地持久化支持两种方式:RDB和AOF。RDB 在redis.conf配置文件里配置持久化触发器,AOF指的是redis没增加一条记录都会保存到持久化文件中(保存的是这条记录的生成命令),如果不是用redis做DB用的话还会不要开AOF ,数据太庞大了,重启恢复的时候非常麻烦。
2.丰富的数据类型
redis支持 String 、Lists、sets、sorted sets、hashes 多种数据类型,新浪微博会使用redis做nosql主要也是它具有这些类型,时间排序、职能排序、我的微博、发给我的这些功能List和sorted set 的强大操作功能息息相关。
3.高性能
这点跟memcache很想象,内存操作的级别是毫秒级的比硬盘操作秒级操作自然高效不少,较少了磁头寻道、数据读取、页面交换这些高开销的操作!这也是NOSQL冒出来的原因吧,应该是高性能
是基于RDBMS的衍生产品,虽然RDBMS也具有缓存结构,但是始终在app层面不是我们想要的那么操控的。
4.replication
redis提供主从复制方案,跟mysql一样增量复制而且复制的实现都很相似,这个复制跟AOF有点类似复制的是新增记录命令,主库新增记录将新增脚本发送给从库,从库根据脚本生成记录,这个过程非常快,就看网络了,一般主从都是在同一个局域网,所以可以说redis的主从近似及时同步,同事它还支持一主多从,动态添加从库,从库数量没有限制。 主从库搭建,我觉得还是采用网状模式,如果使用链式(master-slave-slave-slave-slave·····)如果第一个slave出现宕机重启,首先从master 接收 数据恢复脚本,这个是阻塞的,如果主库数据几TB的情况恢复过程得花上一段时间,在这个过程中其他的slave就无法和主库同步了。
5.更新快
这点好像从我接触到redis到目前为止 已经发了大版本就4个,小版本没算过。redis作者是个非常积极的人,无论是邮件提问还是论坛发帖,他都能及时耐心的为你解答,维护度很高。有人维护的话,让我们用的也省心和放心。目前作者对redis的主导开发方向是redis的集群方向。
D. java培训要学习哪些内容
java培训要学习的内抄容袭挺多,先简单跟您说一下:
Spring全家桶(SpringBoot/SpringCloud/SpringSession/ SpringSecurity/SpringSocial)OAuth2.0社交登陆(SpringSocial集成QQ登陆)
系统压力测试(Apache ab)
容器集群化部署(Docker+K8S+Rancher)
分布式可视化配置中心(Apollo)
数据异构解决方案(sharding-jdbc+ES集群)
Canal+binlog增量订阅
异步编排技术(CompletableFuture)
线程池&线程隔离
分布式锁高并发场景解决方案(Redis+Lua)
分布式服务追踪(Zipkin)
Swagger2全系统接口文档
云存储与本地存储
Servlet3/4异步并发、请求/响应复用
RabbitMQ死信队列、延迟队列前
端SPA完成后台管理系统 权限控制(SpringSecurity)
限流+redis秒杀解决方案 (Vue.js+ElementUI+Node.js+Npm+Webpack)
JDK9、JDK10新特性
........