2020-07-09

计算机编程语言历史:编程史
计算机语言:
二进制编程:0 和 1组成指令
低级编程语言:
汇编语言: 单片机51、ARM
指令助记符 ADD SUB MOV
汇编语言得编译成二进制文件才能够在计算机上运行
高级编程语言:
面向过程的编程语言:C
面向对象的编程语言:C++ PYTHON JAVA

一生二 二生三 三生万物

计算机语言 -> 低级计算机语言 -> 高级计算机语言 -> 人类语言
计算机语言是贴近计算机,意味着人类编程复杂 效率低
高级计算机语言是贴近人类的语言,意味着人类容易读懂,容易编写
高级计算机语言的运行效率就会更低

硬件环境
软件环境

计算机的操作系统:
初始化了硬件设备 搭建了一个环境

操作系统:
windows系统
个人PC机 个人办公 消遣娱乐
mac os 系统(linux内核) 个人PC机

linux  系统(类unix系统)  服务器  云计算  分布式  
UNIX系统
	学术研究  基础都是Linux
	ubuntu   麒麟
	centos
	debian
	rethat
	红旗(中国自主的操作系统)

手机操作系统:Android   IOS   winphone  诺基亚(塞班)
	      Android   安卓
	      IOS       Object-C  OC  swift

硬件:PCB 编程
软件:嵌入式 面向操作系统

windows下编程:C# .NET 微软框架

跨平台的编程语言:
python
java是跨平台的编程语言
QT(图形界面库 C++)

java:是一种编程语言 而且是跨平台的编程语言
1991年sun公司为了解决单片机编程混乱的问题
一个单片机程序不能在不同的单片机上运行
在C++的基础之上发明一门编程语言(Oak)解决跨平台的问题

1993年世界互联网 发展
	静态网页
	数据传输
	服务端   客户端   系统可以不一样
	Linux   windows  
	兼容性不好  跨平台的原因
	在Oak的基础之上开发 Applet 程序

1995推出产品 正式更名为Java
	机会是留给有准备的人

Java之父 :詹姆斯.高斯林
Python之父:吉多.范罗苏姆
C之父 :丹尼斯.里奇
C++之父 : 本贾尼.斯特劳斯特劳普

2008 sun被oracle(数据库)收购
	 mysql 数据库  -> sun收购  -> oracle收购

java为什么是跨平台的?
在不同的操作系统上有不同的安装包

JDK有一个JVM java虚拟机
java程序其实是运行在java虚拟机中

搭建java开发环境:
第一步:安装JDK
JDK java安装包
.exe windows下的可运行程序
选择

配置环境变量:
JAVA_HOME 新建 值: 安装jdk的路径
D:\Program Files\Java\jdk1.7.0_67
CLASSPATH 新建
%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
path 添加(修改)
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
win7系统需要以 ; 为分隔

eclipse 解压
双击

JDK:
java development kit: java开发工具包
安装完之后 两个文件夹 jdk jre

JRE:
java runtime envrionment: java运行环境
包含:jvm 和 类库(功能性的类,直接使用)

JVM:
java virtual machine: java虚拟机

JDK > JRE > JVM
JVM 是java虚拟机 java程序运行在JVM中
JRE 是由JVM和类库组成 是一个java程序能够运行的最小环境
JDK 是由JRE和java工具包(jar)组成

win+r
第一个java程序:
第一步:在桌面新建一个文本文件
第二步:双击打开这个文件 然后编写代码
public class HelloWorld
{
public static void main(String [] args)
{
System.out.println(“Hello java world!\n”);
}
}
第三步:保存退出 右键单击 - 重命名 HelloWorld.java
第四步:win+r 打开命令行 cd Desktop 切换到桌面
dir 显示当前目录下的文件
第五步:编译java源代码
javac HelloWorld.java
如果没有任何提示则表明该程序正确
如果有错则提示错误信息
第六步:运行java程序
java HelloWorld

安装JDK
环境变量配置问题:
1. 只需要配置用户环境 或者 系统环境之一即可
但是注意不要交叉配置
建议配置在系统环境 因为切换用户之后依然可以使用
2. CLASSPATH注意有三个值 .;xxxx
3. win10 和 win7 配置path不一样的地方
win7一个环境变量只有一个值 不同的路径用;隔开
win10 一个路径一行

eclipse: IDE工具 程序员集成开发工具环境
集成了调用、提高、编程、比较等功能
可以极大地提高开发效率

解析HelloWord.java程序
//public class 是java的关键字 HelloWorld必须和文件名一样(而且大小写必须一样)
一个.java文件中可以有很多个class,但是public修饰的class只能有一个,而且这个class的名字必须和文件名一样
//声明一个类
public class HelloWorld
{
//如果把static去掉 编译不会报错 运行报错
//如果把main修改成其它名字 同样编译不会报错 但运行报错
//如果把String写成string 编译报错
//如果把[]去掉,编译不会报错 运行报错
//args如果写成其它名字 并没有任何影响
public static void main(String[] args)
{
//输出语句 如果需要修改输出的内容 只需要修改""里面的内容即可
System.out.println(“Hello java world!\n”);
}
}

java的源程序是以 .java 为后缀的

开发java程序的步骤:
第一步:编写源代码 .java程序
第二步:编译源代码
javac xxx.java
生成一个 .class文件 字节码文件
第三步:运行java程序
运行.class文件
java 类名
启动java虚拟机 加载.class文件 解析.class文件 运行

public class XXXXX
{
public static void main(String[] args)
{
//编写代码的地方
}
}

但是有要求:
15秒敲出来 保证没有错误
二指禅
键盘 手势
F J 食指摆放的位置 盲打 定位


整数 小数 分数 复数 自然类
汉字 英文
名字 年龄 性别 身高 体重 联系方式 联系地址
名字 很多字符组成
年龄 整数 三位整数一定可以存在下
性别 字符 boolean int
身高 体重 小数

程序 其实就是 处理数据
为了更加高效地处理和更加节省空间(内存) 所以 对数据进行了分类
一、java的8种基本类型
1.数值(正负 用0和1来表示 0表示正数 1表示负数)
(一个数据的正负只需要一个二进制位即可表示 这一位称为符号位,数值类型的数据 最高位是符号位)
(1)整数类型
byte 字节 1个字节 [-128,127] -27,(27)-1
short 短整型 2个字节 -32768,32767 -215,(215)-1
int 整型 4个字节 -231,(231)-1
long 长整型 8个字节 -263,(263)-1
(2)浮点(小数)类型
float 单精度类型 4个字节 (1个符号位,8个指数位,23个小数位)
-2128,2128 -3.4E38,3.4E38
小数点后:2^23 = 8388608 (7位)
能够精度到小数点6-7位 其中6位是精确的第7位是不精确
double 双精度类型 8个字节 (1个符号位,11个指数位,52个小数位)
-21024,21024 ±1.7E^108
小数点后:2^52 = 4503599627370496 (16)
能够精确到小数点后15-16位 其中15位是精确的,第16位不一定精度

2.字符   2个字节   '中'  'a'   0-65535
	char
3.布尔类型  1个字节  两个值   true  false
	boolean

字节是什么单位?
内存(容量)单位
1G = 1024MB(兆)
1MB = 1024KB(比特)
1KB = 1024 Byte(字节)
1B = 8个二进制位

二进制是由 0和1组成
八进制是由 01234567组成
十进制是由 0123456789组成
1234 十进制的数 4位
十六进制由 0123456789abcdef组成

01111111 = 127
26+25+24+23+22+21+2^0 + 1 = 2^7
2^7 - 1 = 127

原码 反码 补码

二、变量
程序中要保存数据 变量
变量用于存储数据
java定义变量必须要有类型
1.变量的声明(定义)
(1)数据类型 变量名;
(2)变量使用之前必须先声明(一个东西必须创建之后才能使用)
(3)不可以定义同名的变量
2.变量的规则
变量名满足以下规则:
(1)由数字、字母、下划线、$组成
(2)不能由数字开头
(3)不能和java关键字一样
(4)用中文字符可以但不提倡
(5)见名知意
age name
stuAge stuName
(6)一般来说采取驼峰制的命名规则:
多个单词时首单词全部小定,其它单词首字母大写其它小写
(7)变量名要区分大小写 大小写敏感
3.变量的初始化
(1)变量第一次赋值称为初始化
(2)变量使用(取值操作)之前必须初始化
int age;
System.out.println(age);
编译报错:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The local variable age may not have been initialized at 包.类.方法(文件名.java:行数)
4.变量的操作
(1) 取值 拿到变量里面的值
int age = 10;
System.out.println(age);//取值
int b = age;//取age的值
(2) 赋值 对该变量保存的值进行修改
b = 13;//赋值
b = age;//对b赋值
b = b + 1;//无取值 再计算 最后赋值

eclipse操作步骤:
workspace 存储代码的路径
File->new Java Project -> Finish
Project:
src:存储源代码
JRE:java运行时环境
选中src右键 new package
zhizhen.xxx.xxx.xxx
. 代表路径级别 zhizhen/xxx/xxx/xxx/xxx/xxx

.settings: 关于project的设置
bin: 用于存储.class文件 目录级别和src一样
src:用于存储源代码
.classpath
.project

选中包名 右键单击 new class
填写类名

三、类型与变量
1.在给变量初始化时 初始化的值 不能超出变量所有存储数据的范围
2.java中直接整数值是int类型,所以只能表示[-2147483648,2147483647]该范围的数值
如果要表示超出这个范围的数值,需要在数值末尾加 l/L 表示该值的类型为long类型
3.java中直接小数值是double类型,所以要表示float类型数据时必须在数值后面加f/F
4.浮点类型变量存储的是不精确的值
double d1 = 10;
double d2 = 3.9;
System.out.println(d1-d2);//6.1
double d3 = 6.1;
System.out.println(d1-d3);//3.9000000000000004
5.字符的形式有三种
(1)直接给一个[0-65536]区间的数字 char a = 65;
(2)用’’ 字符 ‘a’ ‘中’
一个字母是一个字符 一个中文汉字也是一个字符
‘1’ 1 是不一样的
字符’1’ 在计算机底层的数值是49
1数值
(3)用Unicode表示 ‘\ue030’
6.布尔类型
只能取 true/false 真假 对错
用于保存逻辑表达式的结果

四、运算符
1.算术运算符
+ - * / %
注意:
(1) 溢出问题
int var = 2147483647;
var = var + 1;
System.out.println(var);
int num = -2147483648;
num = num - 1;
System.out.println(num);
(2) 除法
整数除法得到的结果是整数 整除
(3) % 取余 正负结果取决于被取余的数 数值类型的数据都可以取余
(4) 数据类型转换
隐式类型转换
小字节的数据可以默认转换成多字节的数据
byte->short->int->long->float->double
char->int
强制类型转换
多字节数据转换成小字节数据必须进行强制类型转换
(需要转换成的类型)变量;
强制类型转换可能造成:
1.造成数据溢出
2.造成精度缺失

(5) byte  short  char在进行计算的时候 会隐式(默认)转换成int类型进行计算

(6) 不同的数据类型在进行计算时会进行隐式类型转换

2.赋值运算符
1.算术运算符
+ - * / %
数据溢出问题
/除法 证书得到的结果是int,商的整数部分
%取余 商是整数,剩下的余数
浮点类型进行算术运算得到的结果可能不精确
3.自增自减运算符
4.关系运算符
5.逻辑运算符
6.位运算符

7.三目运算符
8.其它

二进制
条件语句
循环语句
数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值