java新手html代码学习纠错

当前位置浏览文章
Java是一种能撰写跨平台应使用软件的面向对象的程序设计语言。Java 技术具备卓越的通使用性、高效性、平台移植性和安全性,广泛应使用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm小编小辰为准Java程序员们准备了一系列广为流传的Java最佳编程实践:1. 优先返回空集合而非null假如程序要返回一个不包含任何值的集合,确保返回的是空集合而不是null。这可以节省大量的”if else”检查。小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都能来理解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!1. 谨慎操作字符串假如两个字符串在for循环中用+操作符进行拼接,那么每次循环都会产生一个新的字符串对象。这不仅白费内存空间同时还会影响性可以。相似的,假如初始化字符串对象,尽量不要用构造方法,而应该直接初始化。比如说:1. 避免无使用对象创立对象是Java中最昂贵的操作之一。因而最好在有需要的时候再进行对象的创立/初始化。1. 数组与ArrayList之争开发人员经常会发现很难在数组和ArrayList间做选择。它们二者互有优劣。如何选择应该视情况而定。· 数组是定长的,而ArrayList是变长的。因为数组长度是固定的,因而在公告数组时就已经分配好内存了。而数组的操作则会更快少量。另一方面,假如我们不知道数据的大小,那么过多的数据便会导致ArrayOutOfBoundException,而少了又会白费存储空间。· ArrayList在增删元素方面要比数组简单。· 数组能是多维的,但ArrayList只可以是一维的。1. try块的finally块没有被执行看下下面这段代码:从代码来看,貌似finally块中的println语句应该会被执行5次。但当程序运行后,你会发现finally块只执行了4次。第5次迭代的时候会触发exit函数的调使用,于是这第5次的finally便永远也触发不到了。起因便是——System.exit会挂起所有线程的执行,包括当前线程。即使是try语句后的finally块,只需是执行了exit,便也无力回天了。在调使用System.exit时,JVM会在关闭前执行两个结束任务:首先,它会执行完所有通过Runtime.addShutdownHook注册进来的终止的钩子程序。这一点很关键,由于它会释放JVM外部的资源。接下来的便是Finalizer了。可可以是System.runFinalizersOnExit也可可以是Runtime.runFinalizersOnExit。finalizer的用已经被废弃有很长一段时间了。finalizer能在存活对象上进行调使用,即使是这些对象仍在被其它线程所用。而这会导致不可预期的结果甚至是死锁。1. 判断奇数看下这几行代码,看看它们能否可以使用来精确地判断一个数是奇数?看似是对的,但是每执行四便会有一个错误的结果(使用数据说话)。考虑到负奇数的情况,它除以2的结果就不会是1。因而,返回值是false,而这样是不对的。代码能修改成这样:这么写不光是负奇数的问题处理了,并且还是经过充分优化过的。由于算术运算和逻辑运行要比乘除运算更高效,计算的结果也会更快。单引号与双引号的区别看起来这段代码会返回”Haha”,但实际返回的是Ha169。起因就是使用了双引号的时候,字符会被当作字符串解决,而假如是单引号的话,字符值会通过一个叫做基础类型拓宽的操作来转换成整型值。而后再将值相加得到169。1. 少量防止内存泄露的小技巧内存泄露会导致软件的性可以降级。因为Java是自动管理内存的,因而开发人员并没有太多办法介入。不过还是有少量方法可以够使用来防止内存泄露的。· 查询完数据后立即释放数据库连接· 尽可可以用finally块· 释放静态变量中的实例1. 避免死锁死锁出现的起因有很多。避免死锁不是一句话就可以处理的。通常来说,当某个同步对象在等待另一个同步对象所拥有的资源上的锁时,便会产生死锁。试着运行下下面的程序。它会告诉你什么是死锁。这个死锁是因为两个线程都在等待对方所拥有的资源,因而会产生死锁。它们会一直等待,没有谁会先放手。小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都能来理解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!输出:但假如调使用的顺序变一下的话,死锁的问题就处理了。输出:替Java省点内存某些Java程序是CPU密集型的,但它们会需要大量的内存。这类程序通常运行得很缓慢,由于它们对内存的需求很大。为了可以提升这类应使用的性可以,可得给它们多留点内存。因而,假设我们有一台拥有10G内存的Tomcat服务器。在这台机器上,我们能使用如下的这条命令来分配内存:· Xms = 最小内存分配· Xmx = 最大内存分配· XX:PermSize = JVM启动时的初始大小· XX:MaxPermSize = JVM启动后可分配的最大空间1. 幂运算Java是通过异或者操作来进行幂运算的。Java对于幂运算有两种解决方式:· 乘积:· pow方法:在无法用乘积的情况下能用pow方法。不到万不得已不要用Math.pow。比如说,当指数是小数的时候。由于Math.pow要比乘积慢300-600倍左右。1. 如何解决空指针异常空指针异常是Java中很常见的异常。当你尝试调使用一个null对象上的方法时便会抛出这个异常。比方:在上述例子中,school为空或者者listStudents()为空都可可以会抛出了NullPointerException。因而最好检查下对象能否为空以避免相似情况。1. JSON编码JSON是数据存储及传输的一种协议。与XML相比,它更易于用。因为它非常轻量级以及自身的少量特性,现在JSON在网络上已经是越来越流行了。常见的数据结构都能编码成JSON而后在各个网页间自由地传输。不过在开始编码前,你得先安装一个JSON解析器。在下面的例子中,我们将用json.simple库来完成这项工作 (网页链接)。下面是编码成JSON串的一个简单的例子。输出:1. 简单字符串查找Java提供了一个库函数叫做indexOf()。这个方法能使用在String对象上,它返回的是要查找的字符串所在的位置序号。假如查找不到则会返回-1。小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都能来理解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!1. 列出目录下的文件你能使用下面的代码来列出目录下的文件。这个程序会遍历某个目录下的所有子目录及文件,并存储到一个数组里,而后通过遍历数组来列出所有文件。1. 一个简单的IO程序Java提供了FileInputStream以及FileOutputStream类来进行文件的读写操作。FileInputStream的构造方法会接收输入文件的路径作为入参而后创立出一个文件的输入流。同样的,FileOutputStream的构造方法也会接收一个文件路径作为入参而后创立出文件的输出流。在解决完文件之后,一个很重要的操作就是要记得”close”掉这些流。【求助】刚工作新人敲不出代码该怎么学习才能继续做下去【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:725,786贴子:
【求助】刚工作新人敲不出代码该怎么学习才能继续做下去收藏
大家2017年好~半年前有问女生是不是适合学java 感谢好多前辈的热心回答。现在已经工作快一个月了~可是感觉自己太菜了 敲不出代码 不知道该怎么继续学习下去。之前培训的时候老师其实讲了很多 但是自己吸收的不是很好 所以是不是应该自己再重新跟着视频学习一下基础还是把之前学习过的项目重新敲一下 感觉自己哪里都没学好 所以不知道当下最应该学习哪一部分。
看了半天不知道你在说什么
重新过一遍把。我现在都在重新过一遍
面试的时候特别容易~没想到年底进来还有好多好多活等着~除了写了几个接口 简单改了下jsp 感觉自己什么都做不出来┳_┳
加班,不懂就问,
新人,还没学会,正在努力进行中
楼主学了多长时间啊
先搞清楚项目中参数怎么传递的,页面怎么跳转的,学会基本的增删改查。
楼主第一点熟悉代码结构,每个包是干啥的要清楚,慢慢的调试每个模块的代码代表啥,这些应该不难,如果增加新业务估计也是按照以前的代码套路来的
想知道你是怎么进去的?
51CTO学院12年行业品牌,1600万用户选择,中国专业IT技能学习平台,java.java资深大牛授课,0基础从入门到精通,java报名与培训中心.
公司多少人
楼主是在哪里工作啊
不会就多问问同事,千万不要闷着拖进度。
找实际项目做,能够解决你这个问题
首先是改bug慢慢你会熟悉别人的代码跟处理方式并摸索出自己的方式,然后你会接触到添加功能,添加模块,然后你基本就可以自己负责模块了,不要急先看别人怎么做
1、看懂、学别人的代码,跟着写,善用搜索引擎2、不要拖进度,实在不懂就问
写不出就抄别人的改。
你是怎么找到工作的我也要找工作了
早早嫁人才是
应该看公司项目用的什么框架吧,然后重点学习。我比你还糟糕,也是在上海,没学历,技术也不咋地,不好找工作。准备年初在投简历,好羡慕你能找到工作
可以的,可我刚入公司差不多,楼主你们公司做什么的
快上班两个月了的路过.刚开始我也是.如果给你需求.先弄懂需求.清楚大概的思路.然后找别人类似功能的代码抄着写.满满的就会了
一起加班,一起百度,一起泡面,一起过夜
楼主介绍一下呗,我也想去上海
和我好像,我也刚入职
现在咋样了
登录百度帐号求推荐 Java 开源项目,学习优秀代码 - V2EX
求推荐 Java 开源项目,学习优秀代码
25 天前 &yuyueMJ
如题,一直没怎么看过源码,现在感觉水平到了一个瓶颈,或许看一些优秀代码,能够学习其中的大到思想,小到具体的代码技巧!一直有看源码的想法计划,最近在写多线程的程序的时候,有想法但是不知道怎样写得好。。。看源码的需求越来越强烈,但不知道有哪些对新手比较友好(对,排除 spring …),也有很多干货的源码,求推荐!
1532 次点击所在节点 &
lhx200825 天前spring 源码还好,原理比较简单,杂的不要看。netty 源码也比较好看,但是自己要弄明白挺难的
lhx200825 天前还有 mybitis 也不错
yuyueMJ25 天前@ 谢谢,哪些项目的多线程编程写的比较好呢
compiler25 天前不如看下 Java 并发库源码
q25 天前不建议阅读 spring mybatis 这些工业级框架源码,太多细节用于处理一些比较 trick 地方,很容易绕进去出不来,spring 有 tinySpring 可以阅读mybatis 目前没有找到合适的细化版的框架
tonyli25 天前码云
gowk25 天前我 Star 的 Java 代码,每一个仓库的代码都值得学习和阅读
25 天前先知道怎么用再去看源码吧,netty 不错的
pczb25 天前guava
jatesun24 天前guava+1
specita24 天前jdk + guava
kylefeng21 天前
yuyueMJ19 天前@ 这个了解过, 不知现在国内应用怎么样?
kylefeng17 天前@ 目前国内比较小众,上手后再看 spring 那一大坨东西了觉得轻松了很多。个人觉得 spring 更适合快速开发业务,提供了很多”一站式“解决方案,而 vert.x 正如官方所说只是一个 toolkit,实现一个业务的代码量很可能要比 spring 多很多。但是 vert.x 一切皆异步,天然组件化,类似 actor 模型的特性让人又欲罢不能。是一个值得研究的 lib
14 天前自己的小轮子,代码不算多好,但是模仿着实现了一些功能,对 spring mybatis 的原理算是有一个模糊的理解吧,可以交流学习
realkenshinji10 天前Elasticsearch
第 1 页 / 共 1 页&
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到
上打开本讨论主题的完整版本。
是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
is a community of developers, designers and creative people.java新手程序员马上入职了,担心看不懂代码,应该做哪些事情?java新手程序员马上入职了,担心看不懂代码,应该做哪些事情?上世是朵花百家号程序员朋友们,你还能回忆起你刚参加工作时的情况么?是对未来的工作充满好奇,还是有那么一丝紧张,或者是其他复杂的心情,我记得我第一次工作的时候,第一天上班足足提前了2个小时在公司的楼下等着,到点时再上楼,因为当时听说北京堵车,生怕自己会迟到了,可见面对第一份工作是有着多么高的敬畏之心呀。近期一名网友也提到了这样一个问题,他是一名大学毕业生,在校期间学习了一些java基础知识,没有任何项目经验,刚走进社会的一个年轻人,不过让他感到高兴的事情是找到了自己喜欢的工作,并且马上就要入职了,但是高兴的同时,也有几分担心啊,担心自己没法胜任工作,担心以后到公司看不懂代码,另外据这个网友说spring框架他还没有学习过,这份工作的试用期是六个月,总之他现在的心情就是高兴与担心并存,内心也是相当的矛盾了,针对这个事情先看看网友们是如何看待呢?图片来之互联网网友一:spring这种东西不用学,看看就会了(这一看,就是比较熟悉这个框架的老手了,应该说比较简单,但是也没有像他说的这么容易,对一个新手来说,建议这名新手程序员抓紧恶补一下这方面东西,应该很快能熟悉,也有可能你公司不一定用到他,多与直属领导交流,进公司后先了解以后自己要做的事情)网友二:不着急,一步步慢慢来,你以为会让你一进来就挑大梁吗,框架这些边学边用,上手使用问题不大(这名网友说的很对,有经验的领导上来都会给你分一些小事情,让你慢慢熟悉,不会一下子给你分个大活,把你吓趴下!)网友三:不怕,既然要你,他们也是做好准备的,而且毕竟是应届生。可以培养得。虚心努力学习就行。我毕业的时候真是啥都不会。。。(是的,大家刚毕业那会,应该都是这样的状态)网友四:认真点,用心点,多学多问就好。不难 (没错,没错,一步一个脚印,虚心踏实的工作就行,自然路越走越宽)网友五:老哥,你比我强多了,我以前没学过java。来了美团以后真正从0开始的 (这名网友应该是以前学的是他计算机语言,虽然没学过java,但是听这语气,应该是有项目开发经验的,对于有经验的程序员来说,换一种计算机语言应该是也能很快入手的,编程思想才是程序员的灵魂) 图片来之互联网以上是部分网友的观点,大多数都是在为这名新手程序员打气,认为是没问题的,只要努力学习。针对这种情况我也发表一下我的看法,首先这名新手程序员没必要担心的,努力工作便是,他目前这种心态也是好多刚入行程序员的人都有的一种心态,是很正常的一种现象,既然能拿到offer,说明技术面试官是做过综合考量的,觉得你今后是能胜任这份工作的,因此现在要做的事情就是放下这些不必要的担心,以最快的速度去熟悉一下现在的工作环境,现在同事,公司用到什么样的开发框架,以及今后主要做哪方面的事情,把这些事情都搞明白了,然后再针对性的快速去学习,有目标的去学习,争取在短时间内把自己的技能提升一个档次,成为一名合格的程序员。
大家好,我是“上世是朵花”。如果你有什么好的看法或者观点可以在评论区展现你的才华,互动交流,如果想进一步了解我,那就关注我吧!
本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。上世是朵花百家号最近更新:简介:用心写出有态度,有深度,有高度的观点作者最新文章相关文章Java自学之路(新手一定要看)
转自尚学堂
JAVA自学之路 一:学会选择
为了就业,不少同学参加各种各样的培训。
决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。
那么究竟应该选择什么方向呢?
我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。
每个培训机构都会宣传自己的好处,并不能说明大的趋势。
一些新闻文章很有可能是枪手写的,不必太过相信。
国外背景的教师和课程,未必适合你。
那么怎么才能确定自己将来的方向?如何才能从纷繁复杂、或真或假的数据世界中挖出一条路?
我讲一个通过招聘网站的观察方法。
可以到各种招聘的网站上查询信息(可以到google上查询招聘的网站),例如:
http://www.51job.com
http://www.chinahr.com
http://www.zhaopin.com
以及csdn的招聘频道等
还有一个网站也不错,http://www.jobui.com,综合了各大招聘网站的数据。
这些数据都是最真实不掺假的原始数据,你可以每隔一段时间搜索一次,一些规律就会被总结出来了。
比如说我在http://www.jobui.com中搜索java,全国大概提供了3万个职位。
然后要多翻几页,这样不仅能够看清楚大概有多少是有效的职位,而且还可以看清楚用人单位最关心的技能是什么,这个很重要,决定着你将来要花多少时间和精力在特定的知识点上,比如说swing,搜了一下,全国只有700个左右的职位,仔细读了一下,也并非全是有效的职位,花太多时间和精力在这个上面就不值得了,当然自己感兴趣或者为了研究的话另当别论。不过如果是为了快速的就业,把太多时间和精力花在很多职业生涯的前一、二年用不到的知识上就太可惜了。
同时,并非某一个行业的职位数目少,就不能当作一个方向进行选择,比如.NET,我搜索到的职位数是1.6万左右,比java少,是不是就选java了呢?不一定,因为java职位虽然多,但是可能竞争者可能也多,有些方向虽然职位数不多,但是和你竞争这些职位的人数量也少,不见得就不能选择。
不过,如果某一个方向的职位数目过少,你可就要小心了,选择这样的方向风险会非常大,如J2ME。
我个人觉得java/J2EE、.net、嵌入式开发是不错的三个方向。
如果非要在java和.net中选择的话,我个人是推荐java的,原因:
1:Java能够开发linux、unix服务器上的程序
2:JavaEE和.NET在企业应用方面的关注点是差不多的,但是学习了java如果将来想转到.net上会比较简单,几天的学习然后上手开发应该是问题不大的,但是反之就不行了。
当然如果有了些经验之后,你就会发现语言或者平台不再是技术上的阻碍,一些原理性的东西学到手,然后再加上项目经验,使用什么平台,反而不是最重要的。不过如果非要用一种平台进入企业开发的领域,至少在目前,2007年9月,我推荐java。
完全可以不同意我的观点,但是无庸置疑,如果是为了就业,多到招聘网站阅读阅读职位的信息,对你将来的方向和学习是大有益处的。
选择是最痛苦的,看看《天生购物狂》中的刘青云就知道了,不过既然无法逃避,就作出自己的选择吧。
每个人都会受到别人的影响,在作出决定之前,要想尽各种办法让自己理性一些吧。这样,你的选择会离正确的方向更近一些。
JAVA自学之路 二:JAVA自学路线图
有不少的同学发信给我,和我探讨java的自学过程应该是什么样的,毕竟有很多人因为各种各样的原因不能参加培训。我试着给出自己的见解,抛砖引玉吧。
这个路线图是给那些为了就业的人准备的,如果只是兴趣,不一定照这个走。
这里只是讲了路线图,关于路线中的各个阶段,学到什么程度,如何学习等,可以参考后面的JAVA自学之路 七:《路线图明细》。
首先要学JavaSE,这是无庸置疑的。
与此同时,是的,与此同时,和JavaSE的学习同步,建议大家研究一下数据结构与算法。
在这儿之后,你可以选择向J2ME、或者Java GUI、Socket编程等方向努力,但是通过第一篇的办法,你可以很容易就将这方向过滤掉(永远不要忘了我们是为了就业),好吧,暂时和它们诀别,还是向着J2EE的方向前进吧。
在JavaSE完成之后,可以试着完成一些小项目,同时关注一下设计模式的内容,不必强求自己能够完全掌握各种细节,往前走吧。
掌握一种编程工具,比如说Eclipse。
数据库,可以选择使用Oracle或者MySQL开始
。 JDBC,用Java连接数据库。
可以选择在这个地方切入Hibernate,也可以选择在Struts
之后。 HTML CSS JavaScript,这些东西是做web项目必需的内容
。 Servlet JSP,服务器端必需。
XML AJAX,新的流行趋势不能不了解。
作一些小项目吧。比如BBS、留言系统、学籍管理、商城等等,随便着一些业务逻辑比较简单的来做一做。 Struts,MVC的典型应用
Hibernate,OR Mapping的典范之作。
Spring IOC + AOP, 面向对象 + 面向切面,完善的旅程。
把以前自己的小项目加入Struts、Spring、Hibernate的元素吧。
去研究各种商业项目的业务逻辑吧,才能在你的简历中加入浓重的一笔。
EJB3.0,java在走了很多弯路后的回归之作,值得研究。
SOA,业界铁定的未来趋势,要紧紧跟随。
JAVA自学之路 三:要动手
无论如何,请坚持不懈的动手实验!
学习Java要动手,仅仅是看和听是不能够学好编程的。总有同学来信问我们这样的问题,说:"老师我看了视频了,可是怎么一动手就没有任何思路呢?"
对此,我一般都会说不要着急,如果你只是看了视频就想行云流水的话,那老师这些年的锻炼真是白费了,这么多年的苦练才能略有些行云流水的感觉,你一朝一夕就想自己能够达到,不是太奢侈了吗
作为编程的过来人想一下,当年自己学编程的时候是什么时候有思路的呢?至少也是照猫画虎画了一段时间之后吧,我本人是在某一个领域画虎画了上万行代码的时候才慢慢有自己思路的。就像写作文,要有自己思路总是一般来说要经过几个阶段,首先学习词汇,然后学习造句,然后大量阅读别人的文章,自己模仿着写一些,逐渐的经验积累,才能形成自己的思路。学编程,恐怕也得慢慢的来吧,只是看一看、听一听视频,是不足以学好编程的。
所以,动手吧,跟着做,一行一行的跟着敲,一个项目敲完了,比如坦克,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。
如果遇到,暂时对于一些思路不能理解的同学,我一般都会劝告说,动手写,先写代码,量变会引起质变的。而这种质变的确发生过不少次。
提醒一句,要理解代码思路之后再跟着敲 ,背着敲,千万不要左边摆着别人的程序,右边自己一个一个子母的写,这就不再是程序员了,成了打字员了。
纸上得来终觉浅,所以:别问那么多,别想那么多,动手写吧。
JAVA自学之路 四:要事为先
对待人生的任何事情都要:抓大放小,要事为先
对于一个以前从来没有接触过java的人,java无疑是庞大的,似乎每个领域都可以拓展开来都是一片开阔地,每一个领域要想深入接触到每一个细节所耗费的精力都是巨大的。这个时候大家都胸怀壮志,两眼发光的盯着每一个崭新的知识点,遇见了任何一个知识点都恨不得抠的清清楚楚,明明白白。
难道这有什么不对吗?
我的意见是,没什么大毛病,但是学习效率太低了!我们推荐的学习方式是,抓大放小,要事为先。
比如说学习J2SE的时候,学到GUI这一章,有的同学认为,既然学到这儿了,我们去把SWING细细的了解一遍吧;还有的同学,遇到了在Linux下的Shell编程,就恨不得把Shell先学成专家才肯,或者是才敢,继续往下学习;有没有过这样的感觉,一本书的上册没有学好,觉着下册心里也没底儿,甚至非要把上册复习一遍才敢继续学习。如果你也是这样,要去看看心理医生啦,没准儿会有洁癖的毛病。
任何事情都要追求完美才敢继续往后进行,是一种性格缺陷
大胆的放弃一些东西吧,有失才有得,把自己有限的、宝贵的精力用在对于就业直接相关的地方,这才是最有效率的学习方式!等你参加工作,有了可持续发展的事业动力和经济基础,有时间有精力闲的没事儿干的时候,再去研究那些其它吧。
曾经有一个故事,说得是产能和产量的关系。
一个人喜欢读书,读了一辈子,无所不通,这时候要做任何工作都可以,他的产能到了极致,但是,他老了,即便每天产出大量的东西也不能维持多久了,一辈子的产量并没有多少。
另一个人直接工作,忙,天天在机器旁日复一日,做了一辈子,没时间学习和进修,可以想象,产量能有多大呢。
人的一生,要锻炼产能,也要及时产出,引擎要转,也要停下来加油,这两者平衡的越好,你的贡献和产量就会越大。如果钻研的东西和产能目标(或者说近期的产能目标)无关的话,要舍得放手。
所以,对于SWING,暂时先扔在一边吧。
对于shell,对于各种协议过于详细的细节,对于喜欢的游戏编程,对于javascript各种华而不实的效果,都暂时和它们分别吧。一切和我们的直接工作目标关联不大的东西,扔在一边或者弄清楚到足够支持下一步的学习就可以了。
那这样岂不是妨碍我成为通晓各种细节的高手了吗?
我一向不认为一个人掌握了很多很多知识点的细节就是高手了,一个人如果告诉你,回字有四种写法,你会认为他是高手吗?
毫不客气的说,现在我们所教授的所有知识细节在网上或书中都可以找到,只要你肯花时间花精力去动手试,去钻研,没有什么不能掌握的。struts、spring你能掌握吗?当然能!但是如果把时间花在spring的各种细节的研究上,花在研究中国企业应用不广泛地的spring
mvc上,这个精力就太浪费了,而且学习的积极性会受到打击,谁愿意整天泡在细节的蜘蛛网中挣扎不出来呢?谁愿意天天经历风雨却总是不能见到彩虹呢?
盖房子,要先建骨架,再谈修饰。
画山水,要先画结构,再谈润色。
认识一台结构复杂的机器,应该首先认清楚脉络,然后再逐步认识每一个关节。
为了应付从小学到大学的考试,我们背了各种各样的不应该提前掌握的细节,同时也养成了见到细节就抠的学习习惯。而现在,是到改改的时候了。
请在合适的时间,做合适的事情吧。
把时间和精力花在作项目上面,花在写作品以及锻炼解决问题的能力上面吧,这是迈向高手的正确的而且快速的方向。
我一直不认为一个课程提供了很多很多的细节就是优秀的价值高的课程了,掌握必要的细节,这个不含糊,至于其他,或者通过视频给出(这样可以给出更多的细节,但是不占上课时间,课上只讲重要的、必要的细节知识),或者在掌握了自学的能力后自己能够查出,这才是正途。
当你看书到某个地方暂时不理解的时候的,暂时放手吧,追求一些行云流水、自然而然的境界吧,只是不要停下前进的脚步,不要被大路旁边的支根末节干扰了你前进的行程,项目,真实的项目,这才是目的,就在不远的前方。
陶渊明读书,叫做“不求甚解”,但他是大诗人。
诸葛亮读书,总是“观其大略”,但他是大政治家。
作研究的,是在确定了方向之后才详细的研究深入的东西。
到了庐山,脉络形状扔在一边,盯着一棵棵小草、一粒粒石子的看,怎么样才能识得“真面目”?
作为应用型的人才,是研究回字的n种写法还是抓紧时间向着主要应用的方向努力,请自己作出抉择。
以项目驱动自己的学习吧,当把握了技术的脉络之后再去补充细节的研究,是正途。
这辈子就不研究其他的方向了吗?
当然要研究!但是在将来合适的时间再说吧。
所以,抓大放小,要事为先!
那么,在JAVA的这些课程中,哪些才是大,才是要事呢?请继续读下去。
JAVA自学之路 五:问题解决之道
既然是学习,就不可能不遇到问题。
既然是自学,就没有方便的和老师探讨的机会。
那么,遇到问题之后,环境配不通,程序调不过,运行不正常,遇见这些恼人的问题的时候,该怎么办呢?
首先我要恭喜你,遇见问题,意味着你又有涨经验的机会了,每解决一个问题,你的JAVA经验值就应该上升几百点,问题遇到的越多,知识提升的越快。
但是总是解决不了也是很恼人的,怎么办呢?
我一般要求我们的学生都是这样来进行的。
当你遇到一个问题的时候:
1:要仔细的观察错误的现象,是的,要仔细
有不少同学的手非常快,在编译一个程序的时候,报了一大堆的错误,扫了一眼之后就开始盯着代码一行一行的找,看清什么错误了吗?没有!有的时候安装软件出问题了,一个对话框弹出来说出错了,马上举手问老师:“不得了了,出错了,出错了”。
“什么错误?”
“还没看呢?”
这都是典型的不上心的方法!请记住,学习编程并不是一件很容易的事情,自己首先要重视,要用心才可以。
在开发中,仔细观察出错信息,或者运行不正常的信息,是你要做的第一件事。
读清楚了,才能在以后的步骤中有的放矢,哭了半天,总要知道哭的是谁才成。
这里又分三种情况:
A:错误信息读懂了,那么请进入2步:要仔细思考问题会出在哪些环节
B:没读懂,愣是一点没看懂,进入第4步吧:google
C:读了个半懂,有些眉目但是不太能确定,第2步和第4步结合着来。
2:要仔细思考问题会出在哪些环节(重要)
当你读懂了一个问题之后,要好好的思考这个问题可能会在哪些环节上出错。
一辆汽车从总成线上下来,车门子关不上!
哪错了?你怎么查?
当然是顺着生产线一站一站的查下来。
程序也是一样的,也是一系列语句完成后产生的结果。
写一个网络程序,总是发现服务器端打印不出接收的数据,有几个环节会出错?
仔细分析这个现象的环节:
客户端产生数据-&按“发送”按钮-&发送到服务器-&服务器接收到后打印
这几个环节都有可能会出错:
有可能客户端根本就没产生数据,有可能发送按钮按下去后根本就没发出去,或者发出去的不是你产生的东西,或者根本就没连接网络,或者发送出去服务器没有接收到,或者接收到之前就打印了等等等等。
学着去这样仔细的分析程序的环节和这些环节可能会产生的问题,你的经验值定然会大幅度快速的提升,这样做很累人,但是一件事情如果做下来一点都不累的话,这个东西还有价值吗?
在网页A输入了一个人的名字,提交到B,首先存储到数据库,然后再读出来,发现乱码!怎么办?当然是分析环节:
客户输入-&HTTP发送-&B接收-&存储到数据库-&读出-&展现到网页
每个环节都可能出问题,怎么才能知道哪里出的问题?继续往下读。
3:如何定位错误(重要)分析清楚有哪些环节之后,下一步就是定位到底什么环节出错了。
定位有以下三种办法:
A 打印输出,比如java的System.out.println(),比如js的alert(),这种办法常用,必须掌握
B Debug,可以参考我们的视频《坦克大战》,详细讲了Eclipse的调试。
C 删掉一部分调试一部分,也就是去掉一部分的功能,做简化,然后调试剩下的功能,JSP和JavaScript常用。
4:如果还不行,google吧
还查不出来?恭喜你,你遇到的错误是值得认真对待的错误,是会影响你学习生涯的错误,问一下google或者百度吧。照着下面的方法查查看。
一般来讲,搜索引擎可以搜到各种知识点,我曾经跟同学们开玩笑说:“学会了怎么google或者baidu,其实没必要跟老师学了,自己全都搞懂了,尚学堂是没必要来的。”当然,只是玩笑,培训的作用有三个:
A:系统化知识
B:真实项目锻炼经验
C:少走弯路,节省时间
不知不觉开始做广告了,请原谅,处其位谋其事,总得为尚学堂说点什么:)
言归正传,如何查搜索引擎?
先精后粗,首先先进行尽量精确的查找,比如一个错误,SocketException,你怀疑它是在connect()方法出的问题,那么当然是选这样的关键词java connect SocketException
先中后英,本着以解决问题为主的想法,练习英文还是先放在一边吧,首先应该在中文网页中查询,还不行的话,搜索英文的吧,最近的尚学堂课程中会带大家阅读英文的书籍。有很多东西就像一层窗户纸,远看灰蒙蒙怪唬人的,你壮着胆子一捅,它就破了。阅读英文的书籍就是如此,不是想象中的那么困难:)宁可在沙场上战死,也不能被吓死不是吗:)
信息筛选,搜索出来的结果不见得能够完全匹配,建议大家多阅读前几页的搜索结果,多打开几个网页看看,不过,我的经验是超过3页一般就没意义了,所以超过3页还没有找到合适的答案,或许应该调整一下关键词,或者放粗整个搜索的结果了。
经常的进行知识难点的查询,如果一个问题牵扯的面比较广,就干脆到网上搜索一些相关的专题,比如“java 乱码 mysql” “oracle 创建用户”等等,如果有必要,不要犯懒,勤动手写一些小小的测试程序,来弄明白知识点的细节。这也是涨知识的重要的途径。
5:什么?还不行?那么就BBS吧
如果实在还不行,就到BBS上面问一问高手吧。
到哪个BBS上?
google或者百度不就行了么:)关键词“java论坛”“java bbs”
然后在搜索结果里好好的看看那些活动频繁的论坛,以后就是你经常光顾的地方了。http://community.csdn.net就很不错。
向别人提问是非常需要技巧的!
曾经有人问我这样的问题:“请问如何才能学好java呢?”
这个要求太泛泛了。
还有人给我一段代码甚至jar包也寄过来,然后说老师的我的代码中有个错误您帮我查查:(
我没有办法去花大量的时间建立环境去调试一个还不知道存在不存在的错误!
还有人在BBS上问这样的问题:“是否有人能帮我完成一个完整聊天的程序?请帮我写一个登陆模块吧!”
这个要求有些过分了,有人帮你做是你的运气,没有人帮你是正常反应。
向别人提问,应该首先确定你已经做了自己应该做的事,简单说是我前面列举的1,2,3,4步你都作过了,然后再求助于人。不要没有经过认真思考就草率的向别人提问,自己也不会有长足进步的。
那我该怎么样向别人提问呢?
在google或百度搜索《提问的智慧》,你会找到答案。
在这里我给出一个链接http://community.csdn.net/IndexPage/SmartQuestion.aspx,磨刀不误砍柴功,先花点时间去阅读一下吧。
得到别人的回答,要懂得感恩。
不需要去写信感谢,不需要支付费用,不需要那些花言巧语,做到下面这一点就够了:
当你逐步成为高手的时候,要回答别人在论坛上提出的问题,有时间有精力的前提之下!
6:还解决不了?问老师吧,这个只能是在你参加了培训的前提下了。 7:还解决不了?天哪,是不是思路从根上就搞错了?写信给我,让我也学习一下,共同进步吧。
JAVA自学之路 六:项目的自学
现在就业竞争的激烈程度已经远远高于当年了,记得我当年毕业时,一个会编程的毕业生站到台上,大声问道:“我会ASP,月薪5000有没有人要?” 台下的企业马上哗的举起一大片手:"我要我要 !"
那时 没有任何项目经验也会有人提供学习的机会:)
这种好日子恐怕一去不复返了(有些夸张,但无疑当时找一份不错的工作是比现在要容易的多)
而现在,即便是各种必要的知识你掌握的差不多了,但还有一座大山横在你的面前,那就是-项目经验。
有经验的程序员都知道,学习编程的最有效率的方式,恐怕就是把你扔到一个项目组,连滚带爬的做下一两个项目来,你马上会发现所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。一个项目就是一根绳子可以把大片的知识串到一起。
如果想锻炼实际开发的能力而不仅仅是背诵或者了解一些知识点,如果想成为真正的好手而不仅仅是背诵“回”字有几种写法,那么,作项目吧!
目前,各种编程的知识点变得越来越容易掌握,按照《JAVA自学之路 五:问题解决知道》中的各种办法也可以逐步积累自己知识的广度和深度,那现在什么才能够体现水平的不同?当然是项目经验。
目前,尚学堂的课程已经超越了知识点的研究和罗列,我们将在未来的时间里逐步公布各个知识点的视频,包括SSH、EJB等,这样做有两个好处:首先自学的同学可以免费得到原来商业培训的内容,这样起码可以节省一些时间,省一些力气。其次尚学堂自己可以更加专注于项目上。
目前尚学堂的项目写作占了课程50%左右的比重,尚学堂的项目也早已经超越了简单的MIS系统的概念,逐步的成为综合了搜索引擎、工作流、SCA/SDO、Linux/UNIX、大型数据库系统、设计模式、架构模式、负载均衡等各种深层应用的综合大型项目并且采用手把手式的教学方法,做的更加的深入和细致,从现在看效果相当好,最近142班的就业就完全证明了这一点(了解142的就业情况),我们的计划是最近逐步将项目比重提升到70%以上,相信效果会更好。签于公司的规定,我们并不能将所有的项目实战都录制成视频来公布,但是已经公布的项目实战也是非常的有价值的:(http://www.bjsxt.com/download.html)
1:Chat & Tank系列
3:Shopping(近期公布)
那么如果自学我们应该怎么样才能学习项目的开发呢?
一个比较有效的办法是,可以在现有项目的基础上做的更深入一些,比如在你按照视频完成了BBS之后,可以增加一些其他的功能,例如注册/积分/精华/搜索/贴图等等,在完成了Shopping之后,可以增加一些评论/排行/统计/存货等等方面的业务逻辑,尝试用自己的技术将他们作出来,这样既积攒了项目经验,又记住了知识点。
那么如何才能确定我要写什么样的业务逻辑呢?
应该讲这对于一个初学者是非常困难的,一些简单的系统,比如说BBS、Shopping、图书管理等等,它们的业务逻辑很容易确定,去浏览和参考一些现成系统的功能,很容易就能了解了。但是对于商用的大型系统,光是了解业务逻辑本身就会花费大量的精力,如果有时间有精力有财力的话,还是建议考虑一下我们的培训吧,这样经验的积累和薪水的提升会更快,从以前的统计数据看非常容易就可以回收这笔投资(替尚学堂的广告,必须得写,请见谅,但保证真实)。
如果条件不允许,那么就按照上面的方法来学习项目吧,不要因为暂时不能接触更大型更深入的项目而气馁,记住:机会总是青睐有准备的头脑,努力吧。
JAVA自学之路 七:路线图明细
下面给出第二节《JAVA自学路线图》中知识点的明细:
一:J2SE 面向对象-封装、继承、多态
内存的分析
集合类、泛型、自动打包与解包、Annotation
多线程、线程同步
AWT、事件模型、匿名类
正则表达式
2:数据库(Oracle或者MySQL)
多表连接,内外连接, 子查询等
管理表、视图、索引、序列、约束等
树状结构存储
存储过程、触发器
数据库设计三范式、
树状结构存储与展现
DataSource & RowSet
JDBC连接Oracle及MySQL
4:HTML_CSS_JAVASCRIPT
html、css、javascript基础语法
JavaScript Form判断
Dom编程基础(事件处理等)
JS常用效果如TreeView、下拉联动等
JS学习方法
JS调试方法
DreamWeaver初步(建立HTML、Table、Form、CSS)等
5:Servlet & JSP
tomcat基础
servlet基础
web.xml配置基础
web application的结构
servlet生命周期
request response等常用方法
ServletContext类
HTTP协议基础(GET POST)
Application
JSP的几种语法(包括JSTL等)注意在项目中练习,不要拘泥于语法细节而裹步不前。
多层架构理论
Model 1 and Model 2
Struts基本概念
Action与业务逻辑类的关系
在Struts与JSP之间传递数据
Struts处理流程(控制流)
Struts TagLib(了解常用的)
ActionForm
动态Action Form
ActionForward 转发与重定向
动态生成ActionForward
全局与局部的ActionForward
Action Forward Scope
UnknownActionMapping
Action的线程安全
如何切换语言环境
Struts异常处理机制 程序处理 自动处理 自定义异常处理器
Struts的多模块配置
(XML/XSL、XSLT/DTD、SCHEMA等基础的概念、关于Java的编程可以暂时扔在一边)
8:Hibernate
OR Mapping原理
Hibernate基础开发步骤
Hibernate基本接口(重点Session)
普通属性映射
关联关系映射
Native SQL
inverse lazy cascade
继承关系映射
性能优化 一级缓存 二级缓存 查询缓存
事务与并发 悲观锁、乐观锁
OpenSessionInView
CurrentSession
(至于JTA、联合主键、自然主键、动态主键、Any类型 Creteria Queries Intercepter and Event 自定义类型等,可以暂时扔在一边)
Spring配置
Spring架构
AOP及Spring AOP
声明式事务(AOP)
Spring + Hibernate Spring支持Web
(其他的Spring模块对于自学来说可以暂时扔在一边)
10:EJB3.0
J2EE架构基础(JTA JMS等)
EJB基础(地位及基本理论、分类等)
Annotation
Ant编译与部署EJB
Session Bean
EJB的依赖注入
Persistence API
(可以用JBoss学习EJB3.0)
11:至于SOA,对于自学的同学来说,暂时不用特别关注。
梳理一下,你就会发现东西不是想象中的那么多呀!
建议大家优先学习我们公布的视频,然后再去找参考书,因为这个时候就能分辨出来哪些书适合你了。
那么,如何才能找到好书呢?一个简单的办法,在卖书的网站上,比如http://www.china-pub.com,搜索你想了解的知识点比如"javascript",按销售排行,排在前几位的,应该就是不错的,记下书名,到书店阅读几章,合适你的就是好书了。没钱买?简单!还有什么google
+ 电驴找不到的资料吗:)
阅读(...) 评论()

我要回帖

更多关于 拼写纠错代码 的文章

 

随机推荐