零基础的普通人一天的基础代谢,在家自学编程有没有可能成功

初中文化,零基础,想自学编程,有可能吗?【程序员吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:117,187贴子:
初中文化,零基础,想自学编程,有可能吗?收藏
千锋程序员,名企内部推荐就业,入学签订就业协议,2周免费试学!千锋程序员,20周快速成为高级开发工程师,就业“薪”踏板!
买了本C语言,自己看,没什么文化,英语跟数学不怎么的,不知道对以后的学习会不会有影响。
下了恒心想学编程,微信卸载了,手机也开启了飞航模式,不想有人打扰,也不想让自己把精神投入到别的东西,只想静下心看书。
晚上强制自己早睡,好让自己能早点起来看书,可是总是睡不下,有时候迷迷糊糊总想这,该怎么学,从什么地方入手,定义变量如何运用,函数单词如何才能记得,毕竟英语盲,看不懂单词是什么意思。
练习了几次的课题编程,合上书自己写的时候还是会有出错,不过幸好还能找出问题所在,做编程真的是细腻工作,一点小差错也会影响全局,没点耐心真的做不了啊!
想了很多,还是想坚持学下去,不想第一部就见难而退,哪怕后面真的是没那天分,至少也努力过了吧!
上网查了查,见很多人说程序员吃青春饭,过了三十就做不了咯。不知道是前辈吓后辈还是真有其事,不过程序员熬夜加班加点是真,又费脑,精神上压力大点应该有吧!
以前做厨房的时候,厨师们总是说后悔做厨师,做了几十年还是3-4K的工资,如果还有得选,年轻的时候肯定不会入行,不过做厨师确实辛苦。开车的老司机也说开车辛苦,我见每个行业的人总会抱怨说干这太辛苦,各有各的辛苦面吧!我做过工地,整天露天工作晒着太阳,穿着肮脏的工作服,戴着厚重的安全帽,这种天气的话,一天下来一个人都差不多喝半桶水,水一喝下去马上变汗水渗出来湿透衣服,一天下来衣服是干了又湿,湿了再被晒干。不过也不是感觉苦到哭,就是有点脏和累而已,工资好点的能到三四百一天吧!不过一个月也不是天天都能出工呢!
加油吧,我也是自学,有兴趣就能走得更久,更远
楼主,其实我想说什么呢,做什么都辛苦,做什么也都可以赚钱,就看你自己有没有信心了,去做好这件事了,我就是做软件开发的
软件开发工程师,0首付入学,签订就业协议,企业级开发模块,商业项目贯穿学习过程.面授教学保障效果.先学习后付款,4个月实现菜鸟变大神.轻松高薪就业.
劝您还是掏钱参加培训班。为自己的成功选一个好环境!
手持酱油,低头猛走,只为经验,一分到手
可能,作为一枚初一新生我在自学java,除了函数基本都听得懂
可能啊 我就是啊 现在学得还不错 明年上班了 只不过我在培训班而已
可以吧,想学我可以给你套视频
初中文化,零基础,想自学编程,有可能吧。
英语不好可以学,数学不好也可以学,想达到目的就不要怕吃苦
放心好了,我小学2年级学c时比你苦多了
英语学好,逻辑学好。
自学比较浪费时间,报个班,学了,出来找工作,工作上锻炼半年就好了
先搞个自考文凭
现在咋样了,学出来了吗
登录百度帐号&p&学习是一个循序渐进的过程,是一件非常难得坚持的事情。如果真的想学Java,一定要下定决心!&/p&&p&这里我分享给你的Java学习线路图,希望对你有帮助:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-52c367f2edb01686ae49_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1100& data-rawheight=&745& class=&origin_image zh-lightbox-thumb& width=&1100& data-original=&https://pic2.zhimg.com/v2-52c367f2edb01686ae49_r.jpg&&&/figure&&h2&&b&各阶段配套视频推荐&/b&&/h2&&ul&&li&&b&第1阶段:&/b&&/li&&/ul&&p&Java语言入门Java从入门到精通教程&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1pLc7AvL& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1pLc7Av&/span&&span class=&invisible&&L&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&ava8新特性待更新......&/p&&ul&&li&&b&第2阶段:&/b&&/li&&/ul&&p&Java语言进阶(全部掌握薪酬可达4000元/月)&/p&&p&Java高新技术教程&u&&a href=&//link.zhihu.com/?target=http%3A//pan.baidu.com/s/1kVRWVYn& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&pan.baidu.com/s/1kVRWVY&/span&&span class=&invisible&&n&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&Java多线程与并发库高级应用&u&&a href=&//link.zhihu.com/?target=http%3A//pan.baidu.com/s/1bpxhWJ1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&pan.baidu.com/s/1bpxhWJ&/span&&span class=&invisible&&1&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&ul&&li&&b&第3阶段:&/b&&/li&&/ul&&p&JavaWeb中级(全部掌握薪酬可达8000元/月)&/p&&p&JavaWeb从入门到精通教程&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1slHLfIX& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1slHLfI&/span&&span class=&invisible&&X&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&管家婆项目视频&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1miyTRK0& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1miyTRK&/span&&span class=&invisible&&0&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&Servlet 4.0新特性待更新......&/p&&ul&&li&&b&第4阶段:&/b&&/li&&/ul&&p&JavaWeb高级(可达10000 元/月)&/p&&p&Hibernate视频教程&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1qYrUBxi& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1qYrUBx&/span&&span class=&invisible&&i&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&Struts2视频教程&u&&a href=&//link.zhihu.com/?target=http%3A//pan.baidu.com/s/1o855R8Q& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&pan.baidu.com/s/1o855R8&/span&&span class=&invisible&&Q&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&Spring视频教程&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1nvfj7uD& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1nvfj7u&/span&&span class=&invisible&&D&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&OA项目实战教程&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1nuPA3nb& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1nuPA3n&/span&&span class=&invisible&&b&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&CRM项目实战视频&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1kUSxb1P& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1kUSxb1&/span&&span class=&invisible&&P&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&WebService视频教程待更新......&/p&&ul&&li&&b&第5阶段:&/b&&/li&&/ul&&p&项目一(全部掌握薪酬可达12000元/月)&/p&&p&oracle视频教程&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1bpBspdX& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1bpBspd&/span&&span class=&invisible&&X&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&Maven精品教程视频&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1dFek5Zr& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1dFek5Z&/span&&span class=&invisible&&r&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&商务综合管理平台项目待更新......医药集中采购系统项目待更新......&/p&&p&新BOS物流系统项目待更新......E&/p&&p&RP管理系统项目&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1qZEXeFU& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1qZEXeF&/span&&span class=&invisible&&U&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&ul&&li&&b&第6阶段:&/b&&/li&&/ul&&p&项目二(全部掌握薪酬可达15000元/月)&/p&&p&MyBatis视频教程&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1pLompjt& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1pLompj&/span&&span class=&invisible&&t&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Spring MVC视频教程&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1o7TGSZo& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1o7TGSZ&/span&&span class=&invisible&&o&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&Lucene、solr框架待更新......移动电子商城项目(待更新)待更新......&/p&&p&巴巴运动网视频教程106集(全)&u&&a href=&//link.zhihu.com/?target=http%3A//pan.baidu.com/s/1c0tmETa& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&pan.baidu.com/s/1c0tmET&/span&&span class=&invisible&&a&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&巴巴运动网续集视频教程&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1jGgKQhS& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1jGgKQh&/span&&span class=&invisible&&S&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&淘淘商城项目待更新......宜立方项目待更新......&/p&&ul&&li&&b&第7阶段:&/b&&/li&&/ul&&p&热门技能&/p&&p&Java程序算法设计&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1kVN61JT& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1kVN61J&/span&&span class=&invisible&&T&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&SpringBoot视频教程待更新......&/p&&p&微服务架构之SpringCloud链接:&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1jI3p5aQ& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1jI3p5a&/span&&span class=&invisible&&Q&/span&&span class=&ellipsis&&&/span&&/a& &/p&&p&分布式系统架构解决方案之Dubbo&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1jHJU8mE& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1jHJU8m&/span&&span class=&invisible&&E&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&消息队列MQ使用详解待更新......&/p&&p&亿万级电商搜索解决方案&u&&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1mhSDRok& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&htt&/a&&/u&资料:&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1mhSDRok& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1mhSDRo&/span&&span class=&invisible&&k&/span&&span class=&ellipsis&&&/span&&/a& &/p&&p&&br&&/p&&h2&&u&学习线路图,包括学习配套视频已公布,需要的小伙伴自取哦!如果对你有帮助,请点个赞评论一下下哦&/u&&/h2&
学习是一个循序渐进的过程,是一件非常难得坚持的事情。如果真的想学Java,一定要下定决心!这里我分享给你的Java学习线路图,希望对你有帮助:各阶段配套视频推荐第1阶段:Java语言入门Java从入门到精通教程ava8新特性待更新......第2…
&p&原因很简单,你直接从java转java web开发的,必然遇到这个问题:学习的顺序错了。&/p&&p&其实你应该先去看看html/css/javascript开发,然后如果可以的话,先去学个简单点,好入手的php来了解web后台。我建议:&/p&&ol&&li&你先去看看html/css/javascript的基础,然后看看能不能把知乎的登录页面的样子山寨出来。&/li&&li&上面可以了之后,你可以去看看Bootstrap这个css框架。然后能不能山寨一个用户注册界面。&/li&&li&完成了上面之后,你基本的web初级前端的知识就有了,然后你可以去看看php+mysql,能做个注册页面(带后台的),充分了解:GET/POST,Request, Response, Cookie, Session的意思。这些概念都是类似的,无论什么语言开发web,都有这样的概念。&/li&&li&如果可以,看看PHP的CodeIgniter框架,这个框架很简单,很古老,但是学完你会马上了解上面是路由,什么是MVC。预计2周你就可以完全掌握。掌握后,把注册页面用这个框架重写。(这个步骤4可选)&/li&&li&转回java,先把maven/gradle这个东西弄懂,省得你到时候去下载一堆的jar包还要搞错版本什么的。&/li&&li&这个时候,你再去看java web。你会发现:我靠,这个spring这么简单。&/li&&/ol&
原因很简单,你直接从java转java web开发的,必然遇到这个问题:学习的顺序错了。其实你应该先去看看html/css/javascript开发,然后如果可以的话,先去学个简单点,好入手的php来了解web后台。我建议:你先去看看html/css/javascript的基础,然后看看能不能…
&figure&&img src=&https://pic3.zhimg.com/v2-cb34b060adebc78e5f10b6_b.jpg& data-rawwidth=&480& data-rawheight=&270& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&https://pic3.zhimg.com/v2-cb34b060adebc78e5f10b6_r.jpg&&&/figure&&p&&b&1 数组&/b&&/p&&h2&数组是编程语言中最常见的的数据结构,其本身是个引用类型数据。&br&java数组要求所有的数组元素具有相同的数据类型。&br&一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,数组的长度将不可变&br&数组既可以存储基本类型数据,也可以存储引用类型数据&/h2&&figure&&img src=&https://pic4.zhimg.com/v2-fa3a915f85b03_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&778& data-rawheight=&291& class=&origin_image zh-lightbox-thumb& width=&778& data-original=&https://pic4.zhimg.com/v2-fa3a915f85b03_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-dd2e5f2c00fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&583& data-rawheight=&291& class=&origin_image zh-lightbox-thumb& width=&583& data-original=&https://pic1.zhimg.com/v2-dd2e5f2c00fc_r.jpg&&&/figure&&p&&br&&/p&&p&1.2 数组初始化&br&数组初始化有两种方式:&br&静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组长度&br&动态初始化:初始化时程序员只指定数组长度,由系统为数组分配初始值&br&1.2.1 静态初始化&br&语法格式:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-eaac1db165eb154b86498a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&534& data-rawheight=&207& class=&origin_image zh-lightbox-thumb& width=&534& data-original=&https://pic3.zhimg.com/v2-eaac1db165eb154b86498a_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1f739ef15d978a2a04ba803e1749937c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&695& data-rawheight=&90& class=&origin_image zh-lightbox-thumb& width=&695& data-original=&https://pic1.zhimg.com/v2-1f739ef15d978a2a04ba803e1749937c_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-6aee423d3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&731& data-rawheight=&699& class=&origin_image zh-lightbox-thumb& width=&731& data-original=&https://pic4.zhimg.com/v2-6aee423d3_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-115c4c9d974d012fa0a9f3c74b5e6713_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&581& data-rawheight=&303& class=&origin_image zh-lightbox-thumb& width=&581& data-original=&https://pic4.zhimg.com/v2-115c4c9d974d012fa0a9f3c74b5e6713_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-22c2dbee538e285c0fdfd7ebfc4d9f6f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&657& data-rawheight=&252& class=&origin_image zh-lightbox-thumb& width=&657& data-original=&https://pic4.zhimg.com/v2-22c2dbee538e285c0fdfd7ebfc4d9f6f_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-3e91584fbee29ff846b73af042a3c84c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&550& data-rawheight=&268& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic1.zhimg.com/v2-3e91584fbee29ff846b73af042a3c84c_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-267f5ce679ae62a93555deff9c0c8d8d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&592& data-rawheight=&594& class=&origin_image zh-lightbox-thumb& width=&592& data-original=&https://pic2.zhimg.com/v2-267f5ce679ae62a93555deff9c0c8d8d_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-414bdc76b0f8b9dfe22d47de7f11ad6f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&230& data-rawheight=&109& class=&content_image& width=&230&&&/figure&&p&&br&&/p&&p&1.3 堆内存、栈内存、引用变量&br&Java把内存划分成两种:一种是栈内存,一种是堆内存。&/p&&p&栈内存:&br&在方法中定义的一些基本类型的变量和对象的引用变量都是在方法的栈内存中分配。&br&当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。&br&运行速度快,主要用来执行程序。&br&堆内存:&br&堆内存用于存放由new创建的对象和数组。&br&在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。&br&运行速度慢,主要用于创建数组、对象。&/p&&p&引用变量与栈内存、堆内存的关系:&br&在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者对象的引用变量。&br&引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。&/p&&p&&code&
引用变量是普通变量,定义时在栈中分配内存,引用变量在程序运行到作用域外释放。而数组和对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉。这个也是java比较占内存的主要原因,实际上,栈中的引用变量指向堆内存中的变量(数组或对象本身),这就是 Java 中的指针!&/code&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d53f2a7f5ab1cdac1a9e44_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1058& data-rawheight=&492& class=&origin_image zh-lightbox-thumb& width=&1058& data-original=&https://pic1.zhimg.com/v2-d53f2a7f5ab1cdac1a9e44_r.jpg&&&/figure&&p&&br&&/p&&p&1.4 数组遍历&br&数组通过下标访问,下标范围【0 ~ 数组长度-1】&/p&&p&如果数组下标越界,编译时不会出现异常,运行时会报&br&java.lang.ArrayIndexOutOfBoundsException:N(数组索引越界异常)&br&1.5 foreach循环&br&java5之后,java提供foreach 循环遍历数组和集合更加简洁&br&使用foreach 循环遍历数组和集合元素时,无须获得数组和集合长度,无须用下标来访问数组元素和集合元素&br&语法格式:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-bfb616ae21dae2d4252fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&501& data-rawheight=&97& class=&origin_image zh-lightbox-thumb& width=&501& data-original=&https://pic1.zhimg.com/v2-bfb616ae21dae2d4252fc_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-7eee54afe747e23a170ca031_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&603& data-rawheight=&574& class=&origin_image zh-lightbox-thumb& width=&603& data-original=&https://pic2.zhimg.com/v2-7eee54afe747e23a170ca031_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1edc9cabf03a100bd11f1b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&324& data-rawheight=&124& class=&content_image& width=&324&&&/figure&&p&&br&&/p&&p&&b&2 数组变量内存分析&/b&&/p&&p&数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当该引用指向有效内存后,才可以通过该数组变量来访问数组元素。&br&实际的数组对象被存储在堆(heap)内存中&br&如果引用该数组对象的数组引用变量时一个局部变量,那么他被存储在栈(stack)内存中。&br&栈内存:所有在方法中定义的局部变量都是放到栈内存中,随着方法的执行结束,这个方法的内存栈也将自然销毁。&br&堆内存:当在程序中创建对象,这个对象将保存堆内存中,堆内存不随着方法执行结束而销毁,只有当对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适的时候回收它。&/p&&p&示例:&br&动态初始化后,系统内存中实际产生了6块内存区(堆内存),分配默认值0&br&arr变量引用指向数组本身&/p&&figure&&img src=&https://pic4.zhimg.com/v2-7d8bcfcec6fd4b9ce62a36e420c12f9b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&691& data-rawheight=&461& class=&origin_image zh-lightbox-thumb& width=&691& data-original=&https://pic4.zhimg.com/v2-7d8bcfcec6fd4b9ce62a36e420c12f9b_r.jpg&&&/figure&&p&&br&&/p&&p&arr变量通过下标找到数组中的第三块内存,然后把值改为90&/p&&figure&&img src=&https://pic3.zhimg.com/v2-50edb0abd2cd640cdba5af8d2bce386e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&639& data-rawheight=&218& class=&origin_image zh-lightbox-thumb& width=&639& data-original=&https://pic3.zhimg.com/v2-50edb0abd2cd640cdba5af8d2bce386e_r.jpg&&&/figure&&p&&br&&/p&&p&3 方法参数传递之数组&br&数组类型传入方法的参数是个数组的首地址。&br&如果在方法内对数组的元素改变,当方法执行完,方法外该数组的元素也随着改变。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-bdfbeee100a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&763& data-rawheight=&507& class=&origin_image zh-lightbox-thumb& width=&763& data-original=&https://pic3.zhimg.com/v2-bdfbeee100a_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-33a79ea2caad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&830& data-rawheight=&379& class=&origin_image zh-lightbox-thumb& width=&830& data-original=&https://pic2.zhimg.com/v2-33a79ea2caad_r.jpg&&&/figure&&p&&br&&/p&&p&&b&4 数组的应用&/b&&/p&&h2&4.1 数组的拷贝&/h2&&figure&&img src=&https://pic3.zhimg.com/v2-ef6dbf009ad0ba_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&586& data-rawheight=&508& class=&origin_image zh-lightbox-thumb& width=&586& data-original=&https://pic3.zhimg.com/v2-ef6dbf009ad0ba_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d6b06baf7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&164& data-rawheight=&79& class=&content_image& width=&164&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-4ef958a723ce_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&719& data-rawheight=&403& class=&origin_image zh-lightbox-thumb& width=&719& data-original=&https://pic3.zhimg.com/v2-4ef958a723ce_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1e8059aabddadcd5613ebf0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&770& data-rawheight=&331& class=&origin_image zh-lightbox-thumb& width=&770& data-original=&https://pic1.zhimg.com/v2-1e8059aabddadcd5613ebf0_r.jpg&&&/figure&&p&&br&&/p&&p&判断两个数组元素是否相等&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8e4d3df285adc5b3e6ba_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&558& data-rawheight=&459& class=&origin_image zh-lightbox-thumb& width=&558& data-original=&https://pic3.zhimg.com/v2-8e4d3df285adc5b3e6ba_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d8dd1db706e51ccce1b01f8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&548& data-rawheight=&358& class=&origin_image zh-lightbox-thumb& width=&548& data-original=&https://pic1.zhimg.com/v2-d8dd1db706e51ccce1b01f8_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-fbdf29ac9a88a8bfa03e9b43bf7205ee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&590& data-rawheight=&417& class=&origin_image zh-lightbox-thumb& width=&590& data-original=&https://pic3.zhimg.com/v2-fbdf29ac9a88a8bfa03e9b43bf7205ee_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-f75ebf8ee2c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&537& data-rawheight=&233& class=&origin_image zh-lightbox-thumb& width=&537& data-original=&https://pic1.zhimg.com/v2-f75ebf8ee2c_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ba310fb97654dbafe5d21664_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&233& data-rawheight=&132& class=&content_image& width=&233&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-495e9ea718ddd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&451& data-rawheight=&377& class=&origin_image zh-lightbox-thumb& width=&451& data-original=&https://pic1.zhimg.com/v2-495e9ea718ddd_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-3085aac2b58bd4b9c7ea70e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&553& data-rawheight=&430& class=&origin_image zh-lightbox-thumb& width=&553& data-original=&https://pic4.zhimg.com/v2-3085aac2b58bd4b9c7ea70e_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2e7aac50fe27e021e3cac880db118433_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&165& data-rawheight=&83& class=&content_image& width=&165&&&/figure&&p&&br&&/p&&p&4.3 数组排序&br&排序的目的是为了能快速的查找&br&排序分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序;如果排序过程中需要使用外存(硬盘、软盘、光盘、U盘等),则称为外排序。&br&内排序可以分为以下几类:&br&  (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。&br&  (2)、选择排序:简单选择排序、堆排序。&br&  (3)、交换排序:冒泡排序、快速排序。&br&  (4)、归并排序&br&  (5)、基数排序&br&由于时间的关系,只讲具有代表性的冒泡排序、选择排序和快速排序。&br&下面各种排序算法,以升序为例,讲解&br&4.3.1 冒泡排序&br&交换排序的一种&br&思想:&br&先拿数组下标0 的元素 与 数组内下标&0的元素进行比较,只要其他元素比下标0元素小,则进行元素交换,直到下标0 元素与其他都比较完。&br&然后再拿下标1的元素 与 数组内下标 &1 的元素进行比较,只要比下标1的小,则进行元素交换,直到下标1 元素与 &1的元素都比较完。&br&以此类推&br&直到length-1元素都比较完成 。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-a0c7ad50e4b1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&869& data-rawheight=&672& class=&origin_image zh-lightbox-thumb& width=&869& data-original=&https://pic2.zhimg.com/v2-a0c7ad50e4b1_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e59ae5cccb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&744& data-rawheight=&490& class=&origin_image zh-lightbox-thumb& width=&744& data-original=&https://pic4.zhimg.com/v2-e59ae5cccb_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-c9db71a4867f40cbb8aa4b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&736& data-rawheight=&158& class=&origin_image zh-lightbox-thumb& width=&736& data-original=&https://pic4.zhimg.com/v2-c9db71a4867f40cbb8aa4b_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-e0016dbde5e7e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&359& data-rawheight=&607& class=&content_image& width=&359&&&/figure&&p&&br&&/p&&p&分析:&br&o若文件初状为正序,则一趟起泡就可完成排序,排序码的比较次数为n-1,且没有记录移动,时间复杂度是O(n)&br&o若文件初态为逆序,则需要n-1趟起泡,每趟进行n-i次排序码的比较,且每次比较都移动n-1次,比较和移动次数均达到最大值∶O(n2)&br&o起泡排序平均时间复杂度为O(n2)&br&4.3.2 简单选择排序&br&选择排序的一种&br&思想:&br&给定数组:int[] arr={里面n个数据};&br&第1趟排序,在待排序数据arr[0]~arr[n-1]中选出最小的数据,将它与arrr[0]交换;&br&第2趟,在待排序数据arr[1]~arr[n-1]中选出最小的数据,将它与arr[1]交换;&br&以此类推&br&第i趟在待排序数据arr[i]~arr[n-1]中选出最小的数据,将它与arr[i-1]交换,直到全部排序完成。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-af61c689c0e5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&792& data-rawheight=&547& class=&origin_image zh-lightbox-thumb& width=&792& data-original=&https://pic2.zhimg.com/v2-af61c689c0e5_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a341c6c7cbeabeb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&649& data-rawheight=&515& class=&origin_image zh-lightbox-thumb& width=&649& data-original=&https://pic3.zhimg.com/v2-a341c6c7cbeabeb_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-bce24dceec5598_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&589& data-rawheight=&209& class=&origin_image zh-lightbox-thumb& width=&589& data-original=&https://pic1.zhimg.com/v2-bce24dceec5598_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f28bf83c5bbfcd6d77071_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&764& data-rawheight=&422& class=&origin_image zh-lightbox-thumb& width=&764& data-original=&https://pic2.zhimg.com/v2-f28bf83c5bbfcd6d77071_r.jpg&&&/figure&&p&&br&&/p&&p&简单选择排序是不稳定的排序。&br&时间复杂度:T(n)=O(n2)。&br&4.3.3 快速排序&br&交换排序的一种&/p&&p&采用分治法的思想 :&br&首先,说说分治的思想。分治, “分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。&br&分治通过减小问题规模,对问题各个击破,其策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。&br&分治法的基本步骤&br&分治法在每一层递归上都有三个步骤:&br&step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;&br&step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题&br&step3 合并:将各个子问题的解合并为原问题的解。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a51acaa82afce65acd5d17a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&589& data-rawheight=&696& class=&origin_image zh-lightbox-thumb& width=&589& data-original=&https://pic3.zhimg.com/v2-a51acaa82afce65acd5d17a_r.jpg&&&/figure&&p&&br&&/p&&p&快速排序思想:&/p&&p&下面有个a数组,有7个元素,取下标0的元素为基准数&/p&&figure&&img src=&https://pic3.zhimg.com/v2-9dc57f3e4c2d9bca6838e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&371& data-rawheight=&85& class=&content_image& width=&371&&&/figure&&p&&br&&/p&&p&初始时,low = 0; high = 6; tmp = a[0] = 4;&br&先用挖坑填数法,直至 low &= high ,找到要分割的基准依据,基准数左面是小于等于基准数的元素,基准数右面是大于等于基准数的元素。&/p&&p&由于已经将 a[0] 中的数保存到 tmp 中,可以理解成在数组 a[0] 上挖了个坑,可以将其它数据填充到这来。&br&从 high 开始向前找一个 小于tmp 的数。当 high=6 时,符合条件,将 a[6] 挖出再填到上一个坑 a[0] 中。a[0]=a[6];这样一个坑a[0]就被搞定了。&br&但又形成了一个新坑a[6],这怎么办了?简单,再找数字来填 a[6]这个坑。&br&从 low 开始向后找一个大于tmp的数,当i=2,符合条件,将 a[2] 挖出再填到上一个坑中,a[6] = a[2];&br&此时,又形成了一个新坑a[2]&br&经过第一轮后,结果如下:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-018bba18cfbba82c79ca6e8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&364& data-rawheight=&82& class=&content_image& width=&364&&&/figure&&p&&br&&/p&&p&现在 low = 2; high = 6; tmp =4; 然后继续用挖坑填数法&br&从 high 开始向前找一个 小于tmp 的数。当 high=3 时,符合条件,将 a[3] 挖出再填到上一个坑 a[2] 中&/p&&p&形成新坑a[3],&br&从 low 开始向后找一个大于tmp的数,当 low = 3 时,low &= high, 此次循环结束。(循环结束的前提是 low &= high)&/p&&p&然后把新坑a[3] 用 tmp填上,a[3] = tmp 。所有坑都已填满。&br&经过上面的过程,已经找到基准位置&/p&&p&此时,数组内容如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8dfa6ea524ee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&373& data-rawheight=&86& class=&content_image& width=&373&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-652f8fcf26e9b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&952& data-rawheight=&618& class=&origin_image zh-lightbox-thumb& width=&952& data-original=&https://pic4.zhimg.com/v2-652f8fcf26e9b_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fbf3fd829_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&334& data-rawheight=&290& class=&content_image& width=&334&&&/figure&&p&&br&&/p&&p&因此再根据分治法对a[0…2]和a[4…6]这二个子区间重复上述步骤,直到将数组分割成一个一个的元素为止。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-918b3c2bfee44_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&724& data-rawheight=&507& class=&origin_image zh-lightbox-thumb& width=&724& data-original=&https://pic1.zhimg.com/v2-918b3c2bfee44_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d94cf67cac8fb0f6a56ecdd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&652& data-rawheight=&243& class=&origin_image zh-lightbox-thumb& width=&652& data-original=&https://pic2.zhimg.com/v2-d94cf67cac8fb0f6a56ecdd_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-33de46ee201a34e4c696_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&674& data-rawheight=&483& class=&origin_image zh-lightbox-thumb& width=&674& data-original=&https://pic3.zhimg.com/v2-33de46ee201a34e4c696_r.jpg&&&/figure&&p&&br&&/p&&p&分析:&br&快速排序是不稳定的排序。&br&快速排序的时间复杂度为O(nlogn)。&br&当n较大时使用快排比较好,当序列基本有序时用快排反而不好。&/p&&p&时间复杂度是度量算法执行的时间长短,时间复杂度常用大O符号表述&/p&&p&空间复杂度是度量算法执行时运用空间的大小,空间复杂度常用大O符号表述&br&三种排序的对比:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b9ceeb7ebae1e6baf245d2d0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&419& data-rawheight=&95& class=&content_image& width=&419&&&/figure&&p&&br&&/p&&p&排序算法选择&br&数据规模较小&br&   对稳定性不作要求宜用简单选择排序&br&对稳定性有要求宜用冒泡&br&数据规模不是很大&br&  完全可以用内存空间,序列杂乱无序,对稳定性没有要求,快速排序,此时要付出log(N)的额外空间。&br&序列初始基本有序(正序),宜用冒泡&/p&&p&4.4 数组的查找&br&4.4.1 一般查找&br&数组可有序,也可无序。&br&key = 10;&br&查这个key在数组中的位置,如果找到返回数组下标&br&如果没找到,返回-1&br&search方法:&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-bfde6aaae3b2cf3b2902f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&593& data-rawheight=&409& class=&origin_image zh-lightbox-thumb& width=&593& data-original=&https://pic4.zhimg.com/v2-bfde6aaae3b2cf3b2902f_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-5ebaca004_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&618& data-rawheight=&457& class=&origin_image zh-lightbox-thumb& width=&618& data-original=&https://pic1.zhimg.com/v2-5ebaca004_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-1ff982f492d5e2ab145dc81_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&578& data-rawheight=&256& class=&origin_image zh-lightbox-thumb& width=&578& data-original=&https://pic2.zhimg.com/v2-1ff982f492d5e2ab145dc81_r.jpg&&&/figure&&p&&br&&/p&&p&4.4.2 二分查找&/p&&p&二分查找的前提是数组必须有序。&br&这样在查找所要查找的元素时,&br&首先与序列中间的元素进行比较,&br&如果大于这个元素,就在当前序列的后半部分继续查找,&br&如果小于这个元素,就在当前序列的前半部分继续查找,&br&直到找到相同的元素,或者所查找的序列范围为空为止。&/p&&p&二分查找的效率高于一般查找。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-692ff6d3f6ef8f9b35e55f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&780& data-rawheight=&363& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&https://pic4.zhimg.com/v2-692ff6d3f6ef8f9b35e55f_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-33ec30bc45d6f00c4fad6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&708& data-rawheight=&538& class=&origin_image zh-lightbox-thumb& width=&708& data-original=&https://pic3.zhimg.com/v2-33ec30bc45d6f00c4fad6_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-f6f64a6b7c5a41fca148dfc1fe40b956_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&765& data-rawheight=&373& class=&origin_image zh-lightbox-thumb& width=&765& data-original=&https://pic3.zhimg.com/v2-f6f64a6b7c5a41fca148dfc1fe40b956_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c52bfc61aa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&577& data-rawheight=&492& class=&origin_image zh-lightbox-thumb& width=&577& data-original=&https://pic3.zhimg.com/v2-c52bfc61aa_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-57e762eecb0c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&547& data-rawheight=&357& class=&origin_image zh-lightbox-thumb& width=&547& data-original=&https://pic1.zhimg.com/v2-57e762eecb0c_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a3427aabaaa70f4e18a7e7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&687& data-rawheight=&247& class=&origin_image zh-lightbox-thumb& width=&687& data-original=&https://pic4.zhimg.com/v2-a3427aabaaa70f4e18a7e7_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a0fc83dfabf508f33f96_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&550& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic3.zhimg.com/v2-a0fc83dfabf508f33f96_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-cdadf019e0f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&707& data-rawheight=&394& class=&origin_image zh-lightbox-thumb& width=&707& data-original=&https://pic2.zhimg.com/v2-cdadf019e0f_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2e83b6bbaf3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&699& data-rawheight=&154& class=&origin_image zh-lightbox-thumb& width=&699& data-original=&https://pic4.zhimg.com/v2-2e83b6bbaf3_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-07516bdb833db96d96c943aa75c70832_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&558& data-rawheight=&352& class=&origin_image zh-lightbox-thumb& width=&558& data-original=&https://pic3.zhimg.com/v2-07516bdb833db96d96c943aa75c70832_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-b754f3ff1ccd18d42b0c7c00c9592301_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&644& data-rawheight=&485& class=&origin_image zh-lightbox-thumb& width=&644& data-original=&https://pic2.zhimg.com/v2-b754f3ff1ccd18d42b0c7c00c9592301_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e308d533a9ced960cfed3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&537& data-rawheight=&375& class=&origin_image zh-lightbox-thumb& width=&537& data-original=&https://pic4.zhimg.com/v2-e308d533a9ced960cfed3_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-4ed6e28a9c4bc6aec64cea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&348& data-rawheight=&147& class=&content_image& width=&348&&&/figure&&p&&br&&/p&&p&5.2 静态初始化二维数组&br&静态初始化已确定3行3列&/p&&p&静态初始化时,行相同,列不同&/p&&figure&&img src=&https://pic4.zhimg.com/v2-9adc3b6113_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&648& data-rawheight=&553& class=&origin_image zh-lightbox-thumb& width=&648& data-original=&https://pic4.zhimg.com/v2-9adc3b6113_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-814cc21cec2c0ded4057_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&259& data-rawheight=&179& class=&content_image& width=&259&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c5c4bed9ec5ba_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&591& data-rawheight=&518& class=&origin_image zh-lightbox-thumb& width=&591& data-original=&https://pic3.zhimg.com/v2-c5c4bed9ec5ba_r.jpg&&&/figure&&p&&br&&/p&&p&5.4 二维数组原理分析&br&3行&br&第一行 3列&br&第二行 1列&br&第三行 4列&br&先给行设定列数,才能给该行的列赋值,否则报 java.lang.NullPointerException (空指针)&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8ff96fe6b496dd9c39778_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&581& data-rawheight=&318& class=&origin_image zh-lightbox-thumb& width=&581& data-original=&https://pic1.zhimg.com/v2-8ff96fe6b496dd9c39778_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-7e553f5c224b10de40423c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&621& data-rawheight=&458& class=&origin_image zh-lightbox-thumb& width=&621& data-original=&https://pic1.zhimg.com/v2-7e553f5c224b10de40423c_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9e1ff7a46ce5cd47a28a91_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&646& data-rawheight=&476& class=&origin_image zh-lightbox-thumb& width=&646& data-original=&https://pic2.zhimg.com/v2-9e1ff7a46ce5cd47a28a91_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-4aabaa93451dad8a5a54275_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&554& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic2.zhimg.com/v2-4aabaa93451dad8a5a54275_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5afc1fe315ae3d309a42_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&193& data-rawheight=&179& class=&content_image& width=&193&&&/figure&&p&&br&&/p&&p&&b&6 操作数组的工具类常用方法&/b&&/p&&h2&操作数组的 常用工具类是java.util.Arrays,Arrays类中有几个static修饰的方法&/h2&&p&1、boolean equals(type[] a, type[b]);&br&该方法表示如果a数组和b数组的长度相等,而且a数组和b数组的数组元素也一一相同,该方法将返回true。&br&数组的引用变量也可以调用equals方法,但该equals方法继承了Object的equals,而Object的equals方法是比对两个对象是否相等,通常没有太大实用价值。&br&示例:&br&int[] a = new int[]{1,2,3};&br&int[] b = new int[]{1,2,3};&br&int[] c =&br&System.out.println(a.equals(b)); //输出false,a和 b不是同一数组&br&System.out.println(a == b); //输出false,a和 b不是同一数组&br&System.out.println(a.equals(c)); //输出true&br&System.out.println(a == c); //输出true&br&System.out.println(Arrays.equals(a, b)); //输出true&/p&&figure&&img src=&https://pic1.zhimg.com/v2-75b13bf75f5c7aa70e388cbd2a333f2c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&542& data-rawheight=&160& class=&origin_image zh-lightbox-thumb& width=&542& data-original=&https://pic1.zhimg.com/v2-75b13bf75f5c7aa70e388cbd2a333f2c_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-77cbea3a6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&510& data-rawheight=&151& class=&origin_image zh-lightbox-thumb& width=&510& data-original=&https://pic3.zhimg.com/v2-77cbea3a6_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e04ec38d747ade3ae274c6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&949& data-rawheight=&171& class=&origin_image zh-lightbox-thumb& width=&949& data-original=&https://pic2.zhimg.com/v2-e04ec38d747ade3ae274c6_r.jpg&&&/figure&&p&&br&&/p&&p&&b&4、type[] copyOf(type[] a, newLength);&/b&&br&该方法是将a数组复制成一个新数组,其中新数组的长度为newLength,如果newLength≤a数组的长度,则新数组就是a数组前newLength个元素;如果newLength>a数组的长度,则新数组就是a数组所有元素,后面补0(数值类型)、false(布尔类型)、null(引用类型)。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-0fc1e76ccdb6e4c736d097eb995f8a5e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&582& data-rawheight=&299& class=&origin_image zh-lightbox-thumb& width=&582& data-original=&https://pic3.zhimg.com/v2-0fc1e76ccdb6e4c736d097eb995f8a5e_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-a1d6e1845f42efa645e4a1b5ecc425a9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&535& data-rawheight=&265& class=&origin_image zh-lightbox-thumb& width=&535& data-original=&https://pic2.zhimg.com/v2-a1d6e1845f42efa645e4a1b5ecc425a9_r.jpg&&&/figure&&p&&br&&/p&&p&&b&5、type[] copyOfRange(type[] a, int from,int to);&/b&&br&该方法是将a数组的from下标到to下标的元素 [from,to) ,复制成新数组。&br&示例代码:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-c6f03ede47_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&420& data-rawheight=&165& class=&content_image& width=&420&&&/figure&&p&&br&&/p&&p&Arrays类的其他静态方法请根据实际需要自行扩展&/p&&p&数组习题:&br&1、将下面的整型数组&/p&&p&int[] a = {3,5,6,7,8,9,2,4,6,8,0};&br&,求出数组元素的和、数组元素的最大值和最小值,分别用三个方法完成以上三个功能。并输出所求的结果。&/p&&p&2、定义一个包含10个元素的数组,对其进行赋值,使每个元素的值等于其下标,&br&然后输出,最后将数组倒置后输出。&br&如:int[] a = {0,1,2,3,4,5,6,7,8,9}; 把数组倒置后,数组a的元素为[9,8,7,6,5,4,3,2,1,0];&br&然后输出a数组。&/p&&p&3、现在有如下一个数组:&br&int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};&br&要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为:&br&int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5};&/p&&p&4、定义一个整型数组,保存10个数据,利用程序完成将最大值保存在数组中第一个元素,依次递减。&br&如:int[] a = {2,3,5,7,2,5,8,3,9,6};&br&然后将最大值保存在第一个元素,a数组为[9,2,3,5,7,2,5,8,3,2,6];&br&次大值保存在第二个元素,a数组为[9,8,3,5,2,5,2,3,2,6]&br&....&br&直到最小值放最后的下标位置。&br&也就是说对数组进行降序排序。&/p&
1 数组数组是编程语言中最常见的的数据结构,其本身是个引用类型数据。 java数组要求所有的数组元素具有相同的数据类型。 一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,数组的长度将不可变 数组既可以存储基本类型数据,也可以存储引用类型…
&p&我大学学的兽医,应该是彻彻底底的零基础,然后自学转行的。我把我的经历总结下吧,如下:&/p&&p&&b&一、自学历程&/b&&/p&&p&我并不是完全全心全意的自学,我白天上班,晚上回家自学。因为当时手上没啥钱,培训费的确很高,然后问家里要钱不是很丢人吗?所以想法就是先自学看看,不行就继续做运营(seo),成功了就转行。所以就不停的坚持呗,挺苦逼的。。。&/p&&p&&br&&/p&&p&&b&二、学习方法&/b&&/p&&p&我是完全零基础,所以一开始看书可能啥都看不懂,我是找韩顺平、方立勋、毕向东的视频看,这几个人的视频的确很棒,而且讲的非常细,讲的东西也比较有趣。尤其是毕向东,喜欢画内存图(创建对象时内存分配啥的)。&/p&&p&有一定的了解之后,就开始对着书一起看了,《java核心技术 卷一》《java核心技术 卷二》,这个时候就有一定的了解了。然后我学的时候不仅仅是跟着后面敲代码,并且还有记笔记的习惯,有道云笔记你值得拥有。记笔记的目的在于把重点知识用自己的理解记下来,形成自己的知识体系,这很重要。&/p&&p&后来就接触ssh框架,敲些简单的项目了,发现数据库不懂,就开始学sql啊,简单的增删改查通过java实现,一开始是jdbc,后来集成框架。写几个项目差不多对于框架是干啥的就清楚了。&/p&&p&&br&&/p&&p&上面写得有点乱,总结下吧:&/p&&p&建议先视频--》视频+书籍--》实践&/p&&p&看视频的时候一定要跟着后面敲,然后最后实践的时候就不要看视频了,找到网上一些demo或是教程里的,自己不看教程,不看视频,实现出来,然后搞出来之后再总结下,找个工作就很轻松啦!&/p&&p&当然我不是啥大神,以上都是我自己的一些经历,希望对提问者有所帮助!&/p&
我大学学的兽医,应该是彻彻底底的零基础,然后自学转行的。我把我的经历总结下吧,如下:一、自学历程我并不是完全全心全意的自学,我白天上班,晚上回家自学。因为当时手上没啥钱,培训费的确很高,然后问家里要钱不是很丢人吗?所以想法就是先自学看看,…
&p&&b&在大家看之前,我要先声明两点。&/b&&/p&&p&&br&&/p&&p&&b&1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。&/b&&/p&&p&&br&&/p&&p&&b&2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。&/b&&/p&&p&&br&&/p&&p&&b&第一部分&/b&&/p&&p&&b&对于尚未做过Java工作的同学&/b&&/p&&p&&b&包括一些在校生以及刚准备转行Java的同学&/b&&/p&&p&&br&&/p&&p&01&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&学习基础教程,了解&/b&&/p&&p&&br&&/p&&p&&b&学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。&/b&&/p&&p&&br&&/p&&p&&b&学完以上内容以后,你应该对Java有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。&/b&&/p&&p&&br&&/p&&p&02&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&尝试写页面&/b&&/p&&p&&br&&/p&&p&&b&Web开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及MySQL(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。&/b&&/p&&p&&br&&/p&&p&&b&你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,请视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可宅客学院的视频,因此推荐给大家。&/b&&/p&&p&&br&&/p&&p&&b&当然了,我本人并没有看过他的视频,所以不好说的太绝对,如果大家自己有更好的选择,可以坚持自己的,不要被我干扰。原本我也是打算出教学视频的,但是由于时间问题,还是决定放弃了。但是如果你看视频的过程中遇到了问题,欢迎来我的交流群提问,或者去斗鱼观看我的直播提出你的问题,直播地址和群号都在我的个人博客左侧。&/b&&/p&&p&&br&&/p&&p&&b&最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。&/b&&/p&&p&&br&&/p&&p&03&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&学习一些开发框架&/b&&/p&&p&&br&&/p&&p&&b&开发框架当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。&/b&&/p&&p&&br&&/p&&p&&b&目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。&/b&&/p&&p&&br&&/p&&p&&b&但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。&/b&&/p&&p&&br&&/p&&p&04&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&找工作&/b&&/p&&p&&br&&/p&&p&&b&当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西,网络是你最重要的老师。&/b&&/p&&p&&br&&/p&&p&&b&第二部分&/b&&/p&&p&&b&对于参加工作一年以内的同学&/b&&/p&&p&&b&恭喜你&/b&&/p&&p&&b&这个时候你已经拥有了一份Java的工作&/b&&/p&&p&&br&&/p&&p&&b&这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这本书很厚,当初看这本书,我花了整整三个月。&/b&&/p&&p&&br&&/p&&p&&b&正常速度的话,应该可以在半年左右看完。我这里不要求过高,只要你在一年以内把这本书看完即可。当然了,我所说的看完,是充分吸收,而不是读一遍就完事了,因此有些内容你可能会看不止一遍。总而言之,这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。&/b&&/p&&p&&/p&&p&&/p&
在大家看之前,我要先声明两点。 1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。 2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一…
&figure&&img src=&https://pic2.zhimg.com/v2-c6b46c466b69080d6aeed_b.jpg& data-rawwidth=&384& data-rawheight=&232& class=&content_image& width=&384&&&/figure&&p&/*文章很长,能看完的少走一个月弯路,绝不抖机灵*/&/p&&p&这篇文章是为了介绍自己自学用过的Java视频资料。&/p&&p&本套整合教程总共180+G,共450+小时。考虑到绝大部分视频至少要看两遍,而且视频总时长并不代表学习时长,所以零基础初学者总学习时间大约为:&/p&&p&600小时视频时长 + 100小时理解 + 100小时练习,&b&至少&/b&需要800小时。&/p&&p&你可能觉得自己能一天学习8小时,实际上平均下来每天能学4小时都算厉害了。总会有各种原因,比如当天内容太难,公司聚会,要出差等等。如果周末你也是坚持学习,那么&b&最理想状况下&/b&,6个半月就可以学完,&b&达到工作后能被人带的水平。&/b&但我知道那其实基本不可能。我自己从完全零基础,到学C语言,到学Java,除去中间断开的两个月,已经学习10个月。当然,这和我边工作边学习,以及没有人帮我找资料有很大关系。很多时间花在找资料上了。如果你已经经历过JavaSE的洗礼,会明白,我这篇回答对现在迷茫的你份量有多重。&/p&&p&以下正文:&/p&&hr&&p&我15年毕业,大学日语专业。16年9月18日开始决定学编程。&/p&&p&&br&&/p&&h2&&b&【1,启蒙阶段】&/b&&/h2&&p&同样地,花了3天经历了入门语言选python还是C的纠结后,&b&我最终选择看郝斌老师的C语言视频入门&/b&。具体学习方法看我的另一个回答,希望对你有帮助:&/p&&a href=&https://www.zhihu.com/question//answer/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&零基础学计算机?&/a&&p&&b&这个阶段与其说学C,不如说懂一些基本的编程知识&/b&,比如:循环结构,数组,简单的内存分配原理,指针概念等。&b&郝斌老师的C语言视频,对小白非常友好,启蒙教育做得很好!&/b&&/p&&p&如果时间不是很宽裕,可以直接从下面的JavaSE视频开始,看自己能否接受。&/p&&p&如果时间比较宽裕,喜欢循序渐进,培养兴趣了解一些计算机知识,那么可以看看。&/p&&p&我个人觉得郝斌老师讲课很有魅力,我喜欢听他唠嗑。像一位好朋友娓娓道来。&/p&&hr&&p&&br&&/p&&h2&&b&【2,JavaSE基础】&/b&&/h2&&p&JavaSE阶段,建议完全零基础的朋友,直接看刘意老师的,辅助看毕老师的。当然,也可以都试看一下再决定,每个人喜好不同。放心,完全零基础的朋友,一遍肯定学不会。所以同一套视频看两遍都算少了。另外,有时一个老师的观点是片面的,要结合不同老师的讲解才可能对一个知识点有更全面深刻的理解(&b&前提是先把一个老师的讲解吃透&/b&)。所以我是&b&建议刘意和毕向东的都至少看两遍。&/b&&/p&&p&具体建议后面会给出。&/p&&p&&br&&/p&&p&&对零基础学习者的建议&&/p&&p&0,&b&看视频学习,不要看书学习。&/b&我自己是日语专业的,此前完全没有接触过编程,对编程是完全没概念的。知乎上很多人都说看视频慢,建议直接看优秀的书籍,所以我就买了C语言的一些书和Java的一些书(都是初学入门的),&b&但都看不懂,看不下去&/b&。反而是后期跟着视频学习一段时间后,再翻开书本(其实几乎没看过书),慢慢能知道书里在讲什么了。大家千万不要觉得看视频会显得自己学习能力不够强。实际上,大学选择计算机专业的同学,又有多少比例是不靠老师上课,自己躲图书馆把编程学会的呢?从这个角度来说,看视频相当于大学课堂听课。并没什么不妥。&/p&&p&1,不懂的知识点视频多看几遍,如果视频有配套笔记,第二天起来复习一遍,加深印象。自己也可用word做笔记,写学习日志。JavaSE有不懂的,可以百度或谷歌,看看别人的技术博客。再回过头看视频可能就突然明白了。因为我也这么试过,对我帮助很大,希望你也能试试。&/p&&p&2,根据视频内容画思维导图!&/p&&p&画思维导图的好处在我看来至少有两个:&/p&&ul&&li&理清讲解思路,让自己有全局观。初学Java,每一天的视频刚听完就基本忘得差不多了。很多知识点脑海中也只剩下一个名词,具体讲了什么已经记不得!&b&做笔记长远来看是最省时间的。&/b&因为笔记内容都是自己消化过的,后期不用再去看视频复习(太麻烦了),直接看自己的笔记效率更高!反而蜻蜓点水,不做笔记一味求快的人,学到后面跟不上。因为这些知识点你只是听懂了,而不是理解,也没有实际编码操作过,印象是不深的!!&/li&&li&方便日后复习,以及遗忘时的检索回忆。&/li&&/ul&&p&下面是我的思维导图截图(windows可以使用Xmind)&/p&&figure&&img src=&https://pic2.zhimg.com/v2-c02f982f15e_b.jpg& data-size=&normal& data-rawwidth=&720& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic2.zhimg.com/v2-c02f982f15e_r.jpg&&&figcaption&思维导图可以很好地帮助我们理清知识点&/figcaption&&/figure&&p&&b&思维导图要自己做,自己看,效果最好。&/b&看别人的基本没效果。&/p&&p&3,&b&初级阶段不建议买任何书籍,专心看视频和附带的笔记足够了。&/b&包括知乎上推荐的《head first Java》,《疯狂Java讲义》,《Java核心技术》都不太适合现阶段&b&完全零基础的我们&/b&。太厚,知识点太详细。要知道,我们现在刚学完C,才了解编程的循环语句而已。再怎么好的入门书籍,它对受众也是有一定要求的。&b&而这个阶段的我们,就像小婴儿,即使给我们一辆带辅助轮的自行车,我们也骑不了...&/b&我买过一本《疯狂Java讲义》,就翻了几次。看着密密麻麻完全不熟悉的知识点,很烦躁很焦虑。当然,我不是说看书不好,只是本阶段不推荐。至少我从零基础到学习框架,从书本上学到的可能就占了0.5%,看博客学到的也比书本多。几乎完全是靠视频学来的。而且视频也有源码和笔记,已经很方便。&/p&&p&对零基础的学习者来说,JavaSE的学习非常困难。比如我,学了一个多月才学到毕老师的异常一章。之前在面向对象一章就已经很崩溃,哪知异常也这么抽象,完全不知道它是干嘛的....很多人是科班出身,早就忘了当初自己连软件都不会装的窘境。就像我们现在根本不会觉得用筷子还需要学习,但你爸妈当年为了教你用筷子,可是头疼过不止一次呢!&/p&&p&&br&&/p&&p&&JavaSE学习重点参考&&/p&&p&初学者也容易想走捷径。我相信很多人都会有这个想法:能不能只学工作上要用的?根本原因是知识点真的太多了。以刘意老师视频为例,面向对象(封装,继承,多态),异常,多线程,集合框架,IO,网络编程都挺难的。其中面向对象是JavaSE的重中之重,里面的知识点个人认为是最难的。后面的知识点都是建立在这之上展开的,没学好面向对象,后面就会稀里糊涂。&/p&&p&当然,也不是真的一点都不能跳,但最好完整地学下来。&/p&&p&按照后面JavaWeb的学习来看,我的建议是:&/p&&ul&&li&&b&面向对象是基石,JavaSE中最重要的一是集合,二是IO,&/b&希望大家学习这两个知识点时认真对待,多敲代码,多思考。&/li&&li&常用API里,&b&String及其相关类StringBuilder, StringBuffer&/b&等必须熟悉,后面会不断用到。不学好的话,后面怎么死都不知道!&/li&&li&&b&泛型一般只出现在集合中&/b&,个人觉得如果一时无法掌握,那么&b&暂时会在集合中使用泛型就行了。&/b&&/li&&li&反射对于初学者来说是&b&非常抽象的!!&/b&但它又无比重要。它虽然不是JavaSE的重点,但是&b&它是JavaWeb很多难点的底层支撑,不懂反射,寸步难行。&/b&&/li&&/ul&&p&&b&重点&/b&&/p&&ul&&li&面向对象☆☆☆☆☆&/li&&li&集合☆☆☆☆☆&/li&&li&IO ☆☆☆☆☆&/li&&li&String/StringBuffer/StringBuilder ☆☆☆☆☆&/li&&li&反射☆☆☆☆☆&/li&&li&泛型☆☆☆☆&/li&&/ul&&p&&b&熟悉&/b&&/p&&ul&&li&异常&/li&&li&多线程&/li&&/ul&&p&&b&先过一遍&/b&&/p&&ul&&li&GUI&/li&&li&网络编程&/li&&li&正则表达式&/li&&/ul&&hr&&p&&br&&/p&&h2&&b&【3,JavaSE之后干嘛】&/b&&/h2&&p&我当时学完毕老师的25天后,迷茫了很久...根本不知道下一步怎么走,该看谁的视频好一点。后来才知道毕老师原来还有35天、30天、33天版的Java基础视频。但我已经没时间重新都看一遍了,直接开始了崔老师JavaWeb的学习。学到JDBC后发现基础实在太差,学不下去。又回过头学习了刘意老师的JavaSE视频。&/p&&p&我觉得如果选择一家培训机构的视频,就看他们全套的。因为知识点安排和讲课风格会大体接近,比较熟悉。当你发现视频讲得有点浅,说明你学的还不错。此时你想理解得更深的话,不要再找视频了,视频都是给初学者的,点到即止(不论哪家的视频)。直接去看书,《Java编程思想》保证够深。&b&但还是忍住,先往后学JavaWeb吧!&/b&&/p&&p&&br&&/p&&p&&JavaWeb学习重点参考&&/p&&p&【前端部分】&/p&&ul&&li&首先,学习html和css后记得做一个小案例,快速熟悉标签使用。&b&你可以不做,但是你会记不住。&/b&不信你试试。这是我当时看完视频,完成的练手页面:&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-c1d4fc45b91e4435a80d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&338& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic3.zhimg.com/v2-c1d4fc45b91e4435a80d_r.jpg&&&/figure&&ul&&li&学习JavaScript的dom操作时,留个心眼,多关注。js的dom学好了,对后面学习xml的dom也会有帮助。&b&dom4j重点练习,试着自己封装一个小工具。&/b&这两个dom都很重要。&/li&&li&&b&JavaWeb的反射就当复习,好好学&/b&。&/li&&/ul&&p&【JavaWeb核心技术】&/p&&ul&&li&tomcat&b&一定要跟着视频配置一遍&/b&。光看视频是记不住的!!&/li&&li&Http协议和Servlet&b&超级重要&/b&,多看几遍,&b&看一遍你会晕,&/b&东西太多了。建议做一下思维导图,理清知识点。&/li&&li&request和response&b&很重要&/b&,也很难。&b&request域超级重要&/b&。多看几遍,不要心急。&/li&&li&cookie、session、JSP&b&很重要&/b&。多看几遍,不要心急。&b&session域超级重要。&/b&&/li&&/ul&&blockquote&JavaWeb总共四大域对象,都是很重要的。&/blockquote&&ul&&li&day12-13,老实说,我只记得${EL表达式},知道怎么导入JSTL标签库&%@...&和核心库的使用。其他的都忘了。&/li&&li&day14一定要跟着敲,因为&b&后面的小案例都是在这个上面扩展。&/b&这个不敲,后面的敲不了!&/li&&li&day15-19算一个小周期,都是&b&数据库操作。&/b&还是那句话,跟着敲,才记得住。&/li&&li&&b&day17~19JDBC的内容&/b&是崔老师视频的&b&第一个精华!!&/b&其他视频难以超越的讲解!!搞清楚&b&TxQueryRunner的编写思想&/b&对后面学习&b&框架&/b&和框架如何实现事务有四两拨千斤的功效!&/li&&li&相比servlet,监听器和过滤器也挺重要,但老师有点一带而过的感觉,暂作了解。&/li&&li&上传下载和JavaMail挺复杂的。我反正第一次没掌握,以后回过头再学吧...但这些后面的项目会用到。&/li&&li&&b&Ajax,很重要&/b&,但是对于我们可能有点难,但现在和json一起用的越来越多,要好好学!崔老师讲的是原生Ajax,看完后去看就业班的就很容易了!&/li&&li&&b&综合练习,一定要敲,&/b&即使你觉得很难,也要硬着头皮敲完。敲完以后,自信心暴涨,那时你自己对JavaWeb那些知识点是重要的哪些是次要就会有自己的理解。重要的知识点,在你心里沉淀出来。就是这么神奇!!&/li&&li&后面的基础加强,崔老师视频的&b&第二个精华!!&/b&收获也很大。&b&直接提升到另一个境界。&/b&为学习框架做铺垫。也算崔老师的道别礼物。&/li&&/ul&&blockquote&&b&学习路线建议&/b& &br&&br&&b&1,JavaSE(建议三个月):&/b&&br&毕向东任意版(启蒙或辅助)&br&小白人生导师,强烈推荐,两遍&br&刘意JavaSE(深入浅出精华版,主看这个)&br&2014年年底录制,和后面Javaweb比较配,两遍&br&&br&毕向东JavaSE25天版由于有点老了,整个解说都没用eclipse,不利于小白掌握eclipse使用。但内容真心不错很照顾初学者。我自己初学Java看的是25天版本,后来又看了刘意老师的。毕老师的30天版里的多线程比25天版本讲得好,也讲了前端知识。&br&&br&JavaSE小结:&br&主看刘意。&br&毕向东视频作为补充,重点看他的面向对象,集合,IO,30天版多线程很不错。&br&&b&学完JavaSE先看下面的视频&/b&,会让你对前面所学和后面将学的内容&b&有个整体认识&/b&,毕竟你可能从学JavaSE的第一天起就反复问自己:这特么学了有啥用?&br&链接:&a href=&https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1cWdOEa& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1cWdOEa&/span&&span class=&invisible&&&/span&&/a& 密码:rdlq&br&&br&&b&2,JavaWeb(建议两个月):&/b&&br&崔希凡——超全面的JavaWeb视频&br&和刘意的JavaSE衔接比较好,同样深入浅出。day14和day24~26的项目,day17~19的JDBC以及最后两天的基础提高非常棒,强烈推荐,两遍。&br&&br&唯一的遗憾是这套视频没有jQuery和bootstrap 等前端内容,需要自己另外找。jQuery可以去菜鸟教程或者w3cschool学一下就好了。或者看就业班的。农历新年我会更新进阶版的学习路线,里面会补充。&br&&br&推荐网络博文:&a href=&https://link.zhihu.com/?target=https%3A//www.cnblogs.com/xdp-gacl/tag/JavaWeb%25E5%25AD%25A6%25E4%25B9%25A0%25E6%2580%25BB%25E7%25BB%2593/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JavaWeb学习总结 - 标签 - 孤傲苍狼 - 博客园&/a&&br&孤傲苍狼的博文,大概是根据传智方立勋或者其他老师的视频再加上自己的理解写成的。还是非常不错的。我推荐大家学习崔老师的视频时,多关注崔老师的word笔记、孤傲苍狼的博文,也可以看看我的思维导图。一定要多看,集思广益。&br&&br&&b&3,ssh框架(按顺序,建议20天):&/b& &br&&b&重点看Spring,Struts2和Hibernate了解思想就好,看完就忘掉!!公司基本不用了。&/b&&br&崔希凡Struts2 + 刘悦东ssh框架 + 王泽2016ssh框架 + 王泽ssh综合项目实战&br&&br&①崔希凡Struts2(衔接JavaWeb,作为过渡)&br&②刘悦东ssh框架(Struts2讲得不错)+ 梁桐spring&br&③王泽2016ssh框架(言简意赅,思路清晰) + ssh综合项目实战(最后Dao抽取不错)&br&&br&崔老师的Struts2毕竟是2013年的,有点老了,会比较琐碎。最重要的是,现在Struts2都不怎用了,作为了解的话,主要看值栈和拦截器,了解思想。&br&这部分视频主要是为了给JavaWeb看崔老师视频的朋友一个过渡。怕你们舍不得崔老师。其实其他老师框架也讲得非常好。比如刘悦东,广陵散等。&br&&br&看完崔Struts2,就看刘悦东的框架,hibernate重点了解思想,Struts2几个视频中他讲得最好最深。&br&&br&最后,有了上面的铺垫,再看王泽的ssh2016,条理非常清晰,精炼,没有一句废话。每天只有2.5小时。过一遍很快。&br&&br&为什么三个框架要看这么多视频?因为零基础初学者要进入框架学习其实需要适应时间。就好比广陵散(王泽)的,我一开始就是看他的,当时就想:什么东西?上来就讲一大堆配置?学习任何东西我都希望能知其然知其所以然,比较讨厌死记硬背。所以我列的视频顺序,是为了照顾初学者心理。&br&&br&学习任何框架一定要知道,在没有它之前,前人是怎么做的,那样做存在哪些弊端,而框架又是怎么解决的。这样学才能形自己的理解。刘悦东和崔希凡算是课程上得比较有意思的。让他们带你们入门,心里好接受些。&br&&br&但框架东西毕竟太多,最终还是要王泽这样精炼简洁的讲解给你们梳理一遍。&br&最后跟着王泽的ssh项目做一遍,ssh框架也就算入门了。struts2和hibernate理解思想即可,因为不用了!!但也不要走过场。你不了解Struts2和Hibernate,你就不知道学习SpringMVC和MyBatis有什么好处,各自的优缺点是什么,因为没有对比!!&br&&br&&b&我的建议是,Struts2和Hibernate做做笔记,了解思想。不用去敲代码。把你的大脑空出来给后面的springmvc和mybatis。都学的话,会混!!&/b& &br&&br&&b&3.5,崔希凡JavaWeb(day17~19,day27~28)&/b&&br&Javaweb阶段你可能觉得上面这几天内容不明觉厉,但又不知道具体有何用处。等你学完SSH就会发现这部分内容是真的很吊。&b&看崔老师的JDBC能一窥框架的事务原理,基础加强讲到了如何利用注解+反射搭建山寨版的hibernate和spring。&/b& &br&&br&&b&4,SSM框架(重点中的重点)&/b&&br&①李旭讲的mybatis和springmvc&br&②黑马的《springmvc、Mybatis由浅入深教程》&br&③在掌握了上面的视频内容并有自己的一些见解后再去看尚硅谷的Mybatis,有稍微讲一下源码。&br&&br&之所以先看李旭的springmvc和mybatis,原因无他,就因为他只讲重点,讲得快。总共十小时,讲完两套框架。如果你领悟力够强,理论上就成了。但绝大部分人都不可能看这么一套视频就会用sm框架。所以在看李旭的视频时,要随时记录自己的疑问,然后看燕青的视频时,带着疑问去学习。&b&mybatis主要关注输入映射+sql配置+输出映射,了解mybatis如何解决jdbc的不足。springmvc没什么建议...自己看着办。&/b& &br&&br&&b&5,学习方法:&/b&&br&小白自学的难点在于:&br&1,找不到合适的资料。2,不知道学习重点。&br&&br&我的学习路线,是个人认为最适合小白的。&br&至于学习方法,即使我这篇文章给出了重点,可能你们还是不会相信。所以我建议:&b&不要想着彻底掌握一块知识点再去学下一块知识点&/b&,这样永远不可能把这一套视频学好。&br&&br&你应该&b&在理解的前提下用最快的时间完整过一遍,对整体学习路线有个把握。&/b&第一次学习争取每个知识点懂个50-60%,专门搞个txt文档记录观看过程中的疑问点,从后面的内容判断前面哪些知识点是重要的,常用的。&b&然后回过头来有重点地攻克,抓大放小。&/b& &br&&br&最后,我推荐的视频都是自己用过的,对比挑出来的。尽量追求深入浅出,通俗易懂。如果你觉得没看懂,&b&就多看几遍!!“多看几遍”是最简单朴素道理,很奏效。但是很少有人相信。&/b&其他的跟着视频就好。前期用记事本工具,我用的是notepad++,你也可以用EditPlus。后期用MyEclipse,其实就是多了插件

我要回帖

更多关于 零基础如何自学编程 的文章

 

随机推荐