【转载知乎:Martin Wang】[文中的题目是Martin提出的,截图的答案是我自己写的!!!]
如果你不是计算机专业的科班出身,从C++转JAVA,学1个月的JAVA SE是远远不够的。这个一个月里,你不可能掌握Java SE的一些主要功能。如果你能很轻松的说出,写出下面的程序的例子,算我白说:写个Hello World程序,放到package com.yourname.package-name里,用命令行来运行。
了解Java流程控制语句,能不百度,不查笔记写出至少下面的程序:
Q九九乘法表。
Q找出10000以内的所有质数,并打印写个阶乘函数。
Q[冒泡排序,从小到大排序;以前面试经典考题,现在估计不怎么考了吧?]
【冒泡排序解题方法一】
【冒泡排序解题方法二】
//使用Arrays.sort方法,少些一行是一行。
Arrays.sort(ns);
[冒泡排序解题三]
面对对象编程:写个例子,告诉我们什么是重写,什么是重载。
Q什么是重载?reload
A:多个方法,方法名相同,各自参数不同,参数类型不同。
public void hello(){}无参无返回值
public void hello(String name){}带参数无返回值
public void hello(String name,int age){}
Q什么是多态,写个栗子?
解释一下static关键字,
A:执行优先级,静态代码块》构造代码块》普通代码块;
并举例内部类集合和泛型List及其实现类Set及其实现类Map及其实现类举例告诉我们,为什么要用泛型?
为什么要用泛型异常/捕捉。
举个例子来演示一下try...catch...finally的流程。
IO编程。写个读写,复制文本文件,图片的程序。知道什么是序列化网络编程。
能写个简单的socket发送/接收程序。多线程。
这个你能写个程序证明一下ArrayList类是线程不安全的就行。能不能写个程序,读取Mysql数据库里的随便什么表,并显示出来。这些能不能有100%的把握?
如果没有,回去看Java入门的书,否则没有人会要你,哪怕不要钱的那种。
如果你现在这些全会了,好,可以看Java web了:
你能不能山寨个知乎登录页面(只要样子,不用功能)?可以的话撸一下,否则的话就先去菜鸟教程把HTML+CSS+Javascript入门教程看看明白。别去丢人现眼的看java框架,你看不懂的。
SQL语句的增删改查能不能随手写,不百度?不行的话,先把SQL练一把,否则你MyBatis或Hibernate框架玩不来的。
如果都可以了,继续:把tomcat装上,能不能跑起来?
可以的话:JSP的9个内置对象明白没有,session, request, response搞明白了吗?
如果明白了,先给你山寨的知乎首页加个登录功能行不行?
如果行了,继续:看看自己会不会玩Servlet?Filter是什么,原理是什么,为什么要这样做?URL/URI是什么?搞明白了?JavaBean, DAO这样的黑话是什么?能不能写个例子出来看看?
继续玩,了解taglib,el, jstl等。玩到这里,你学SSM/SSH就很轻松了。怎么学SSM/SSH教程多得很,你自己很容易找。
学习忌急躁,你如果我说的几点都能轻松掌握的话,找到实习不是什么太难的事情。
关键是我觉得你3个月学了这么多,如果不是天赋异禀,应该就是蜻蜓点水。
Java SE是基础,好比是人的内力。开始的时候觉得没什么,但是后期就体现出来了。别灰心,好好学吧,
java se学个2-3遍不丢人,每次你都会有新的认识的。学编程就别只看视频,要学会看书,看文档。要多写,多练,多踩坑。坑踩多了,就平了。----------------------------------------感谢大家的赞。我忘记说了,如果可以的话,建议题主尽快学会git/github的使用,这个照着廖雪峰老师的git教程学一下的话大约也就是撑死1-2天的事。还有就是尽快掌握Markdown格式的笔记书写方法,这样的话你可以随时记笔记,把自己的学习成果留住。学会Markdown更快,资质一般以上的人大约30分钟时间就够了。
评论区有人问,学到HTML什么的时候懵了,呵呵。其实没什么,这个可简单了。
网站开发,主要分成前端和后端。
前端:HTML+CSS+Javascript(javascript简称js)是主要的基本技术。
后端:Java/PHP/C#/Python + MySQL/Oracle/MS Sql Server(数据库)
前端基本都是运行在浏览器里的,你现在看到的这个页面就是前端的这些HTML+CSS+JS在浏览器里的表现。
你可以这样理解,把WEB网页前台看成是一个房子,那么HTML就是结构(钢架,柱子什么),
后台就是配套设施,如发电厂,水厂,电信局,这个你理解吗?
也就是说HTML可以造出一个网页的架子(DOM,Document Object Module)。光一个HTML的架子难看吗?
难看,那么我们需要给它贴瓷砖,让这个房子好看起来,这个就是CSS的作用。那么房子没有水,没有电,没宽带网络也不爽啊。
这个时候,我们就需要Javascript来实现一些动态效果,如弹出窗口,判断用户输入的密码长度是否符合要求,身份证号码是否合规这样的。JavaScript就是房子的水管,电线。这样明白了。学到这里,我建议你先去撸几个网页的山寨版。
至于jquery,就是一个包装过的javascript工具。
如,你要实现有人触电的时候自动关电源,有个叫触电保护器的东西,这个玩意其实也是电路,但是你要用自己弄个电路出来很麻烦,于是有人就对电路封装,做了这个叫触电保护器的玩意给你用。jQuery就是一个封装好的js工具,让你很轻松的就完成复杂的操作,如DOM操作(简单点的就是图片可以像幻灯片一样动,可以隐藏图片,动态改变网页背景颜色什么),AJAX操作。
至于Ajax是什么,我建议你先理解Web后台开发后。
你要理解html里有个表单这个元素,也就是form。
在没有ajax之前,我们所有的web前台和后台的交互一定要提交form,这样服务器才能拿到数据。
这样的话,有的时候会有问题,如我注册的时候,我想选martinwang这个用户名,可是用户名必须唯一,我的用户名是否唯一只有后台去数据库里找了才知道,于是我只能提交网页。
提交后,后台告诉我,这用户名已经存在,得,我原来填的一堆东西就白填了,重新开始写。
估计多来几次,用户要怒了。Ajax可以在不整体提交网页的前提下,和后台交互,这样我就可以在填完用户名之后,马上就知道我的这个martinwang是否可以用了。
当然ajax的好处不止这些。你可以细细体会。现在你不懂,没有关系,等你JAVA WEB后台学过了,再回头看,就容易理解了。
估计你很快也会碰到一个概念,叫JSON。这个玩意看着恐怖啊,其实纸老虎一个。
这个玩意你就简单的认为是个前台和后台数据交换的格式好了,本质就是个字符串,只是javascript会把它看成是对象。这些名词你也会接触到:Bootstrap, React, Vue.js……这些你就理解成是包装好的js或css包,类似于房子上用的各种开关,各种装修材料好了。
【Markdown】
https://www.runoob.com/markdown/md-table.html
一个比html简单很多的,高级记事本。