第一章 初识Java
1. 你学习编程的目的是什么?学习编程最快的办法是什么?
答:我觉得的我喜欢计算机,我认为计算机是一个很神奇的东西,所以我要学计算机专业,同时,我认为学计算机学编程是一个比较容易拿到高薪的路径,我想在我以后的生活中能做着我感兴趣的事情也能够养活自己和家人,所以我选择计算机选择编程。我认为学习编程最快的方法就是不断地练习,不断地上机,不断地做项目,同时多读一些大佬们写出来的一些项目,正所谓熟读唐诗三百首。
2. 程序员的职业规划是什么?我怎么能拿到10万年薪,30万年薪,50万年薪?
答:关于程序员的职业规划,个人认为是非常重要的了,很多人口中的走一步看一步,我想是非常错误的。相信对大多数人来说,程序员只是一口青春饭,IT行业是一个技术不断快速革新的行业,过了一定年纪,学习能力的下降,家庭方面的拖累,相信多多少少的都会让程序员们感到吃力,此时就牵扯到一个转行问题,所以,我相信,作为一个程序员,是必须要给自己做好职业规划,必须要给自己留好退路的。小编认为,想要成为一个高薪程序员,在入门阶段,是必须要精通至少两门语言的,所谓的精通,不只是你能够熟练地运用,还要深入的理解其语言的发展史语言的各种专业知识等,相信做到这些,外加上一个灵活的头脑,在自己的底层开发阶段,coding阶段,也能拿到一份不错的薪水。但是目标不能停在这个地方,接下来的日子里,除了不断地学习,还要为自己做好下一步的准备,如果感觉自己能够编程到老,那就不妨编程到老,毕竟薪水也还可观,但对大多数来说,这一步是走不下去的,需要另寻出路。相信项目经理、架构师等是不错的选择,这种靠经验较多的职位,大家还是能胜任的了的。另外,转行老师应该也是可以考虑的,如果自己有着不错的口才,现在很多私营的教学机构门槛还不算太高,薪水也可观;再或者,你拥有着不错的人脉,选择创业也是很好的一条出路,毕竟在IT业创业成本可能只是几台电脑。Balabala这么多,其实就是牵扯到一个转行问题,年轻的时候,对我来说,我要做的就是深入学习然后努力工作,然后提前为转行做准备,转行之后就变得相对稳定,可以安度余生了。
3. 一个技术点,怎么样才能算学会?需要能默写出来吗?
答:我认为对于一个常用知识点,只要能熟练运用就算是学会,对于一个不常用知识点,在看着API文档能够快速使用也算是学会,总之一个知识点只要是能够快速地运用就算是学会,并不需要能够默写。
4. 北京尚学堂旗下“百战程序员”的理念和定位是什么?
5. 说出计算机语言为什么按照第一代、第二代、第三代发展?
答:计算机语言作为人类操作计算机的工具,必然会向着人类更容易使用的方向发展。第一代计算机语言是最初为了满足人们操作计算机这一目的发明的,使用纯二进制数字01对机器进行直接的操作,但是其难度极高,非一般人所能理解,因此,第二代计算机语言汇编语言因需求产生,第二代计算机语言用字符代表二进制代码,容易记忆,容易使用,达到了常人也能使用的目的,但是第二代计算机语言需要记忆的地方仍旧很多,顺势发展便出现了第三代计算机语言,第三代计算机语言代码与英文的相似,很多算式与数学中的算式相似,更加容易记忆和使用。总之,计算机第一二三代语言的发展是计算机发展史上的必然要求如何考取百战程序员,进入正式班级学习?哪个网站会公布最新的“百战程序员”视频和资料?
6. Java有什么核心优势让其流行?
让Java流行的最核心因素是其能够跨平台运行的特点,另外其核心优势还有安全、多线程、分布式的开发模式等。
7. Java的三个版本是什么?
答:(1)javaME:适用于小型设备和智能卡的嵌入式产品(如电视机顶盒、移动电话); (2)javaSE:适用于桌面系统软件,如QQ (3)javaEE:适用于网页服务器应用,如企业管理系统
JavaSE:Java Standard Edition
JavaEE:JavaEnterprise Edition
JavaME:JavaMicro Edition
8. Java是哪个公司发明的? 现在这家公司处境如何? 为什么?
答:Sun公司发明的,现已被甲骨文公司收购,因为在Sun公司在与微软的竞争中不敌微软,最终由于业绩问题被甲骨文公司以74美元收购。
9. Java的跨平台是通过什么实现的?
答:通过Java虚拟机JVM实现的,Java并不是在电脑的cpu上运行,而是在JVM上运行,每个系统有各自系统对应的虚拟机,将java编辑器编译的class文件解释为各系统的机器指令。
10. Java语言释型还是编译型?还是两者都是?
1**1. JDK、JRE、JVM的全称是?**
答: JDK Java Development ToolKit(Java开发工具包);
JRE Java Runtime Enviromental(Java运行时环境);
JVM Java Virtual Mechinal(Java虚拟机)。
JDK>JRE>JVM
12. JDK包含JRE,这句话对吗?
对,JDK是Java开发工具包,包含开发环境和运行环境,面向开发人员,而JRE是Java运行时环境,面向使用者,JDK包含JRE。
13. 【上机】熟悉DOS命令行方式的常用命令:dir、cd等.
**14. DOS下,自动补齐命令的键是哪个?DOS下,想查找以前执行的命令用哪个
Tab**
15. DOS下,dir命令表示什么含义? cd 表示什么含义?
dir 为查看当前目录下的文件和文件夹;
cd 目录名 进入该目录
cd\ 返回根目录
cd.. 返回上一级目录
md 目录名 建立指定文件夹
rd 目录名 删除指定文件夹
cls 清屏
↑ 自动添加上一指令
Tab 自动补齐
16**. 【上机】安装JDK、配置环境变量、并写出自己的第一个HelloWorld程序**
17. 为什么采用JAVA_HOME的方式配置环境变量较好?
Java HelloWorld
18. public class 的类名必须跟文件名保持一致吗?
19. 编程风格一定要:成对编程和缩进。用文字或代码说明如何实现成对编程和缩进。
20. system.out.println(“hi”); —-这句代码能否顺利执行?
**21. 一个Java源文件可以写多个class吗?编译后,会不会生成多个class文件?
HelloWorld.java**
**22. 编程时,为什么需要注释?注释的类型?
23. 多行注释能不能嵌套使用?
24. 【上机】使用snagit/ FastStone Capture软件截图
25. 【上机】使用pdf阅读器做笔记,阅读相关电子书文档
26. 【上机】使用录屏软件Camtasia录制和转换视频
27. 【上机】使用onenote记笔记和画图
28. 【上机】使用亿图软件画出相关图形**
阶段项目课程1
29. 【项目】台球游戏小项目
练习目标:
1. 找到敲代码的感觉
2. 收获敲代码的兴趣
3. 作出效果,找到自信
4. 从一开始就学会调试错误
5. 掌握Java代码基本结构
注意:不要求学生理解代码的语法功能,只要按照代码结构输入代码,能够经过调试实现代码的正常运行即可;
全部讲解和练习时间控制在2小时以内
项目需求:
桌球在球桌中按照一定线路和角度移动;遇到边框会自动弹回
要求:
即使看不太懂,也要照着敲如下游戏代码,至少5遍。要求所有字符和源文件一致。如果报异常,请细心看所在行和老师代码有何区别:
import java.awt.*;
public class BallGame extends Frame {
//球桌和桌球图片
Image ball = Toolkit.getDefaultToolkit().getImage(“images/ball.png”);
Image desk = Toolkit.getDefaultToolkit().getImage(“images/desk.jpg”);
//桌球的起始位置
double x=100;
double y=100;
//桌球移动的初始角度60°
double degree = 3.14/3;
/**
* 绘制一次桌面和桌球
*/
public void paint(Graphics g){
//绘制一次桌面和桌球
System.out.println(“窗口被画了一次!”);
g.drawImage(desk, 0,0, null);
g.drawImage(ball, (int)x,(int)y, null);
//桌球的下一次坐标位置
x = x+ 10*Math.cos(degree);
y = y+10*Math.sin(degree);
//到了球桌四个边框后桌球角度的变化
//1.如果到了底部,就要变角度
if(y>480-30-40){//480是球桌高度,30是球的直径,40是桌边框宽度
degree = - degree;
}
//2.如果到了右边界,就要变角度
if(x>856-30-40){
degree = 3.14-degree;
}
//3.如果到了上边界,就要变角度
if(x<20+20){
degree = 3.14-degree;
}
//4.如果到了左边界,就要变角度
if(y<20+20){
degree = -degree;
}
}
/**
* 绘制多次次桌面和桌球
*/
void launchFrame(){
//四个方法什么含义,你能根据运行结果看懂吗
setSize(856, 480);
setLocation(50, 50);
setTitle(“尚学堂–程旭源作品”);
setVisible(true);
//每隔40毫秒绘制一次桌面和桌球
while(true){
repaint(); //重画窗口!
try{
Thread.sleep(40); //40ms 1s=1000ms
}catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
System.out.println(“我是尚学堂的程旭源!”);
BallGame bg = new BallGame();
Fan f1=new Fan();
Fan f2=new Fan();
bg.launchFrame();
}
}