第一章 计算机,程序和Java概述
1.1 什么是计算机
计算机包括硬件 ( hardware ) 和软件 ( software ) 两部分 。 一般来说 , 硬件包括计算机中可以看得见的物理部分 , 而软件提供看不见的指令 , 这些指令控制硬件并且使得硬件完成特定的任务 。
一台计算机是由以下几个主要的硬件组件构成的:
- 中央处理器 ( CPU )
- 内存 ( 主存 )
- 存储设备 ( 例如 , 磁盘和光盘 )
- 输入设备 ( 例如 , 鼠标和键盘 )
- 输出设备 ( 例如 , 显示器和打印机 )
- 通信设备 ( 例如 , 调制解调器和网卡 )
1.2 编程语言
- 机器语言:二进制
(1101101010011010) - 汇编语言:使用短的描述性单词 ( 称为助记符 ) 来表示每一条机器语言指令 (add 2 a B , result)
- 高级语言:语句
(area=5 * 5 * 3.14159 ;)
软件的分类:
静态编译型:先将所有代码进行编译->生成机器码->运行
C Java 数据类型严格区分
动态解释型:读取一行-> 编译一行->生成机器码 ->运行
Python Matlab 数据类型不严格区分
解释器:从源代码中读取一条语句 , 将其翻译为机器代码或者虚拟机器代码 , 然后立
刻运行
编译器:将整个源代码翻译为机器代码文件 , 然后执行该机器代码文件
1.3 Java语言
Java语言的三个版本:
- Java 标准版 ( Java Standard Edition , Java SE )
可以用来开发客户端的应用程序。应用程序可以独立运行或作为 applet 在 Web 浏览器中运行 。 - Java 企业版 ( Java Enterprise Edition , Java EE )
可以用来开发服务器端的应用程序 ,例如 ,Java servlet 和 JavaServer Pages ( JSP ) , 以及 JavaServer Faces( JSF ) 。 - Java 微型版 ( Java Micro Edition , Java ME )
用来开发移动设备的应用程序 , 例如手机 。
JVM:Java虚拟机
API: (Application Program Interface) 应用程序接口,也称为库 ,包括为开发 Java 程序而预定义的类和接口 。
JRE:(Java Runtime Environment) Java运行环境。JRE=JVM+核心类库(图书馆)
JDK:(Java Development Kit)Java开发工具包。JDK=开发工具+JRE
IDE:(Integrated Development Environment )为了快速开发 Java 程序而提供集成开发环境 的软件 。 编辑 、编译 、链接 、调试和在线帮助都集成在一个图形用户界面中 ,这样 , 只需在一个窗口中输入源代码或在窗口中打开已有的文件 ,然后单击按钮 、菜单选项或者使用功能键就可以编译和运行源代码 。
1.4 程序设计风格
- 正确的注释和注释风格
行注释(以//开始)
块注释(以/*开始)
文档注释(以/**开始,以 */结尾) - 正确的缩进和空白
- 块的风格
1.5 一个简单的Java代码
/*输出Hello World*/
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
1.6 程序设计错误
- 语法错误:由创建代码时的错误引起的 。例如: 拼错关键字 ,忽略了一些必要的标点符号 ,或者左花括号没有对应的右花括号 。
- 运行时错误:引起程序非正常中断的错误 。运行应用程序时 ,当环境检测到一个不可能执行的操作时 ,就会出现运行时错误 。
- 逻辑错误:程序没有按预期的方式执行
- 常见错误:
1.遗漏右括号
2.遗漏分号
3.遗漏引号
4.命名拼写错误
设置eclipse
-
编码集设置
UTF-8
Window-Preferences-General-WorkSpace-Text file encoding-Other-UTF-8 -
字体
Window-Preferences-General-Appearance-Colors and Fonts-最后一个Text Font
字体:Consolas
字形:常规
大小:16~20
课后练习
/*
* 需求:求两个数字的除法
* 第一个数字:9.5*4.5-2.5*3
* 第二个数字:45.5-3.5
* 1/2
* */
public class Demo1_1 {
public static void main(String[] args){
System.out.println((9.5*4.5-2.5*3)/(45.5-3.5));
}
}
==========================================
/*求和1-9*/
public class Demo1_2 {
public static void main(String[] args){
//冗余
System.out.println(1+2+3+4+5+6+7+8+9);
//重复步骤-循环解决
}
}
================================================
/*
求和4*(1-1/3+1/5-1/7+1/9)*/
public class Demo1_3 {
public static void main(String[] args) {
double sum=1;
Scanner sc=new Scanner(System.in);
System.out.println("请输入项数:");
int n=sc.nextInt();
int flag=-1;
for(int i=1;i<n;i++){
double result=(1.0*flag)/(2*i+1);
sum=sum+result;
flag=1;
}
System.out.println(4*sum);
}
===================================================
/*
* 数据:半径 面积 周长 圆周率
* s=πr^2
* l=2πr
* */
public class Demo1_4 {
public static void main(String[] args){
//数据 避免死数据 -输入
System.out.println(2*10*3.14);
System.out.println(10*10*3.14);
}
}
====================================================
/*
数据:时间 长度
指令:v=s/t
s=14公里->14/1.6
t=45*60+30
v 英里/秒 3/1
* */
public class Demo1_5 {
public static void main(String[] args) {
System.out.println(3600*(14/1.6)/(45*60+30)+"英里/时");
}
}
================================================
public class Demo1_6 {
public static void main(String[] args) {
System.out.println(3600*24*1.6/(1*60*60+40*60+35)+"公里/时");
}
}
==================================================
/*使用Cramer规则解方程组
*/
public class Demo1_7 {
public static void main(String[] args) {
System.out.println("x="+(44.5*0.55-50.2*5.9)/(3.4*0.55-50.2*2.1));
}
}
================================================
/*
* 365天->秒 365*24*60*60
* 312032486+365*24*60*60/7-365*24*60*60/13+365*24*60*60/45
*/
public class Demo1_8 {
public static void main(String[] args) {
System.out.println(312032486+365*24*60*60/7-365*24*60*60/13+365*24*60*60/45);
}
}