java程序员如何加快升级之路?
感谢邀请。Ted演讲中说过。如果你什么都不会。每天坚持几个小时,只要20个小时就会达到你吃惊的地步。心无旁骛,学习时候远离任何东西,刚开始学习会遇到很多困难觉得自己很笨,其实每一个人刚开始都会遇到大量困难和障碍,只要坚持20小时。你就会学到很多了
这个问题其实分两种情况,第一种是个人基础很扎实,第二种是个人基础一般。第一种建议多看源码,多专注系统类书籍的研读和实战。第二种建议平时多注意基础修炼,源码也看看,多动手操作,看看基础类书籍,熟悉框架的基本原理。
对于程序员我想许多人都走过那段路,刚到一家公司导师给的小练习,在公司的大项目里加点小功能,需求觉得挺简单,自己设计流程后发现自己的思路和实现都有很多问题,访问数据库也老是抛异常,觉得自己挺差劲的,不要小看那些小功能, 小功能其实也包含很多技术的,比如类和变量的命名,怎么样才能让类或者方法的名字更加实用呢,你是怎么命名的,数据库的表是怎么设计的,代码是最优化的吗,eclipse 的一般设置都知道吗,还有快捷键, 你是实习生当然不会给你安排比较重要的工作, 你要是老板你会放心吗...... 还有你学的框架什么的 都是理论吧, 让你说出spring hibernate 什么的 原理 你应该能说的出来,但是 让你 不用eclipse去搭建一个 web 项目的时候,你能在10分钟搭建完成吗, 还有 各种配置文件,随时需要的时候 你能马上搞定吗, 也许你组长马上喊你 配置一个 log4j 的配置,或者修改部分原来的配置,你能马上搞定吗,..... 这些看起来都是小事,但是需要非常熟悉才能快速搞定,......其他小事情就更多了, svn linux m***en 虚拟机什么的,都熟悉吗, 慢慢来, 做一个项目不是光靠敲代码就搞定了的....... 还有,至于你设计流程,我想这不可能吧,公司怎么可能让你去设计呢,一把都是经理或者组长 召集大家开会搞定的,还有 UML 类图 时序图什么的,我觉得不可能是由你来搞的,因为这涉及到 设计模式什么的,不是想当然的去画的,之后可能要重构好几次 才动手去敲代码..........加油吧~, 建议你自己弄个练习项目,从搭建到丰富功能,一点一点来,不要贪快......还有多请教前辈吧 请勿着急。努力吧骚年......
如何理解Java中的并发编程与多线程?
并发:同一时间段有几个程序都处于已经启动到运行完毕之间,并且这几个程序都在同一个处理机上运行,并发的两种关系是同步和互斥;
互斥:进程之间访问临界***时相互排斥的现象;
同步:进程之间存在依赖关系,一个进程结束的输出作为另一个进程的输入。具有同步关系的一组并发进程之间发送的信息称为消息或者事件;
并行:单处理器中进程被交替执行,表现出一种并发的外部特征;在多处理器中,进程可以交替执行,还能重叠执行,实现并行处理,并行就是同事发生的多个并发***,具有并发的含义,但并发不一定是并行,也就是说***之间不一定要同一时刻发生;
多线程:多线程是进程中并发运行的一段代码,能够实现线程之间的切换执行;
异步:和同步相对,同步是顺序执行,而异步是彼此独立,在等待某个***的过程中继续做自己的事,不要等待这一***完成后再工作。线程是实现异步的一个方式,异步是让调用方法的主线程不需要同步等待另一个线程的完成,从而让主线程干其他事情。
异步和多线程:不是同等关系,异步是目的,多线程只是实现异步的一个手段,实现异步可以***用多线程技术或者交给其他进程来处理。