java中map怎么输出?
Map的一般用法 1.声明一个Map: Mapmap=newHashMap()
; 2.向map中放值,注意:map是key-value的形式存放的,如: map.put("sa","dd")
; 3.从map中取值: Stringstr=map.get("sa").toString, 结果是:str="dd' 4.遍历一个map,从中取得key和value: Mapm=newHashMap(); for(Objectobj:map.keySet()){ Objectvalue=map.get(obj); }
怎样编写一个Java应用程序,实现向屏幕中输入一句话:“你好,这是我的第一个Java程序”呢?
你可以下载一个Eclipse插件 首先呢 新建一个Java项目 新建一个包 然后新一个类 在main()函数里面输入 System.println("你好,这是我的第一个Java程序")
Java程序员应当如何向架构师的目标迈进?
首先说说我对架构师的理解,架构师与普通程序员的主要有两方面:
一方面是其所具备的技术能力可以解决更多的、更复杂、更困难的事情,如果普通程序员能解决架构师才可以解决的问题,那么普通程序员不也就成了架构师了吗;
另一方面是在心态和责任上,架构师由于所处职级高一些,责任也就大一些,遇见问题往往会迎难而上,更具有owner意识与责任意识,因为往往他们没有人可依赖,反之一般程序员尤其是初级程序员,遇见问题往往会求助于比较厉害的程序员。
下面重点说说java程序员如何向架构师迈进:
1、扎实的基本功,从基础的数据结构到算法,从基本语法到语言特性都应了熟于心,如数家珍般的一一道出。这个一般通过多看一些基础书籍就可以学习到。
2、练就基本功之后应该多注重实践,对于所做的项目多思考,多总结,多优化,让项目更加健壮、可靠;性能更好,资源利用率更高。并且要善于总结。
3、承担更多的责任,多做事接触的东西才能更多、更广,尤其是有参与大型项目机会时,一定多多参与,一般来讲针对一类业务,参与过几个大型项目那么在这个业务领域内便能具备一定的架构涉及能力,前提是做好第二点,对项目做到全面了解。
4、多总结,多学习新技术才能跟得上潮流,才能成为称为时下流行的架构师,过时的架构师往往没有用武之地,举一个不恰当的例子,对于曾经在4M内存时代的架构师,如果不跟进新技术,现在未必有用武之地。
关注我,定期更新java生态圈内的最新技术,欢迎多多交流。
我来讲一个身边的朋友的工作经历,希望能对各位一点启发。
这个朋友毕业7年,目前是一家小公司的架构师,可以说是在架构师的路上了吧。
1到3年--练技术
这个阶段就是练技术。
只要是工作中用到的技术,遇到的难题都是要吃透的。
经过这几年,应该达到高级工程师的水平。精通java,这里可不是说简历上写的那种精通。应该对JVM调优,多线程编程,常用设计模式,spring框架信手拈来,
对缓存,nosql等使用熟练。
这个阶段最开心的事应该是遇到困难,解决困难。只有解决了难题,才能真正获得成长。
还有一点是看源码。使用api,大家都会用,这个区分不出水平。既然题主是希望成为架构师的,那么源码一定要看。分析清楚源码的架构,自己debug一下。
3到6年--大平台
经过几年的技术积累后,这个朋友选择跳槽去了阿里。
想成为架构师的话,去互联网大厂工作一段时间还是很有好处的。
1,大公司的技术架构基本已经成型,有非常多的成功经验可以拿来主义
2,有很多问题,在小公司是遇不到的。只有业务量达到一定程度,才可能遇到架构或者其他问题
3,镀金。这也是很现实的一个考量。有BAT工作经验是为你的能力提供一个背书。
6年之后--创业公司架构师
在阿里工作了几年后,这位朋友选择了一家小公司做了架构师的岗位。
为什么这么选择呢?
1,阿里牛人太多,自己没机会出头。只能开发业务代码,没机会深研技术。
这其实是个鸡头凤尾的选择了,见仁见智吧,不抬杠。
2,去创业公司,很多技术方案需要自己研究。很多技术方案,看起来都懂,但是不自己切身走过这段路,真正的核心技术还是掌握不了。
3,大公司太忙,没时间研究技术。希望多参与开源社区
技术之外
架构师其实已经不单单是个技术岗位了。更多的需要和业务打交道,根据业务指定合适的技术方案。另外架构师是一个领导岗位,是需要带领程序员一起往前冲的。所以
1,人际沟通能力。可以做一个闷头干活的程序员,但是没有闷头编码的架构师
2,总结展示能力。架构师很多时候要对老板或者业务领导讲解技术,所以需要很好的总结和演讲能力,让不懂技术的人信赖我们技术团队
3,责任心和不屈不挠的毅力。架构师是团队里技术难题最后依靠的人。普通开发人员可以指望你,但是架构师没有人可以依靠了。遇到问题,百折不挠,迎难而上,是一个架构师最基础的觉悟。
要进阶为架构师,首先得具备高级java工程师的能力。比如对java语言非常熟悉,精通面向对象和常用设计模式,深入jvm调优和垃圾回收机制等。其他诸如操作系统、数据库、缓存、消息、框架等就不用说了。
除了以上,还需要以下几项能力。这也是区别于普通、高级、资深工程师的能力:
首先,架构师面向的是业务,是熟悉业务的能力。所以架构师一定要非常熟悉系统要解决的业务模式和业务流程问题,这样才能描绘系统的基本结构来。也就是你要弄清楚做这个系统干什么,为什么要这么做,这么做带来的收益和代价是什么。这就需要架构师深入理解业务模式,跟运营、产品、市场以及领导等深入沟通,了解系统等本质意义。
其次,架构师要把业务问题用系统的方式解决,需要画图并且把架构表达出来。画图是什么意思呢?就是抽象与归纳总结能力。把一个复杂的业务场景,通过归类、分层、模块化、删减浓缩为一个一个普遍意义的抽象问题。比如某大学生饿了要去食堂吃饭这个具体问题,要抽象为年轻大学生如何解决饥饿获得满足的通用问题。画图是为了利于表达,只有思想在自己的脑海还不行,别人无法理解,还需要图表、文档以及不断沟通来有效传递给他人。所以这个能力是问题的系统化归纳和表达能力。
再次,架构师需要横向的广阔知识。架构师不一定是系统具体的编码者和实现者,而是设计者。这就需要考虑很多实现人员不太关心的问题。比如网络部署、数据备份、机器运维、广告接入,以及与其他系统耦合和通信,如何集成测试,如何灾备,如何重构,如何扩展、如何重写等等。这要求架构师博学多识,还需要与时俱进,更需要触类旁通,用最新的也是最合适的技术方案来实现业务架构。
最后,架构师必须具有超强的责任心和毅力。系统的设计非常繁琐和无序,如果前期需求不是很明朗或者业务不清晰会导致方案反复修改,而架构一旦确定再更改的风险极大,所以前期充足的准备就非常重要了。这个就需要超强的责任心,一定要仔细审度,反复验证。毅力是因为架构师要贯穿项目始终,无论项目早起还是攻坚还是收尾都需要参与,无论哪个环节都需要了解现状。我们知道项目后期大家都会疲惫,这样对于架构师来说毅力很重要,绝不能放弃,需要与技术经理或项目经理一道为整个项目(系统)负责。
说了这么多,其实也很简单。除了基本编程能力,有好的解决问题的能力即可。不用多说,而是清晰表达,把图和方案画了就行。
感谢邀请~
其实在国内软件发展并不像美国那样长久地发展,而是在互联网时代集中爆发,架构师已经和初始的含义有所变化,目前,在国内架构师 = 真正含义上的 架构师+首席工程师。
真正含义上的 架构师
狭义的,真正的架构师是负责处理高层的,所谓架构,高到大部分同学无法理解,比如我司全球有4万多从业人员,涉及12个大的产品门类,横跨从fintech到政府网站的很多领域,在这样的公司负责总架构的CTO office的高级架构师他们,事实上是连特定的某个系统都不太深入去看了,他们只负责宏观的技术走向,这种宏观,既不是什么语言,什么框架,也是不是哪个类库哪个包,而其下,每个产品门类都有自己的主任架构师,这些中级架构师,包括我在内,主要基于高级架构师的指导方针,设计产品门类中所实际出售的产品群。
首席工程师
而首席工程师,也有叫做application architect的,主要是负责一个产品当中的技术难点攻关,这是大部分同学所能理解的“技术大牛”,他们是精通某些语言或者框架技术的技术者,而架构师,比如我,并不如首席工程师那么精通各种技术的实际实现。
回过来,讲国内,毕竟大部分人还是在国内,在硅谷,你除了几个顶级大佬,基本上没什么机会会升到架构。国内来说,我们把目前的职称泡沫去掉,大约在国内通行的P7 level左右开始可以算架构师了,其实主要还是做的首席工程师的工作,也就是解决疑难杂症,间或做些小的组件系统的设计开发优化工作。
可以说,真正意义上的架构师,大约是三分之一实际工程能力,三分之二规划能力,而国内意义上的架构师,正好相反,三分之二实际工程能力,三分之一规划能力。
最后放张大图给大家品味一下吧!