# JAVASE基础(一) #
一.Java概述
- 1.Java开发方向
a. javaSE: java来做桌面程序开发
b. javaEE: web方向开发
c. javaME: 嵌入式开发 - 2.Java开发工具(IDE)
a. notepad++
b. 记事本
c. Eclipse
d. Myeclipse 3.JDK安装和环境变量配置
- JDK安装要注意系统是32位还是64位。
- JDK三大部分
a. Bin:目录下面是JDK提供的一些工具
b. jre :下面是运行环境
c. jdk提供的一些类库 - 环境变量配置
Path: 变量值为JDK安装的bin目录。配置目的是为了cmd可以找到Path下的文件.
4.java程序编译和执行
- 编译:
a. *.java 源文件 : bin\ 目录下 javac.exe 去进行编译
b. 编译之后产生*.class字节码.
c. bin\目录下 java.exe 执行*.class. - 执行:
执行java.exe之后, 会帮我们把字节码文件加载到 JVM 运
- 编译:
二.Java基础语法 - 关键字、标识符、常量、变量
1.关键字
- 关键字是被Java赋予特殊含义的单词(字母全部小写)
- Notepad++等工具对关键字有特殊颜色标记
2.标识符
- 标识符就是就是给类,接口,方法,变量等起名字时使用的字符序列
- 组成规则:
a. 英文大小写字母
b. 数字字符
c. $ 和 _ - 命名注意事项:
a. 不能出现Java中的关键字
b.不能以数字开头
c. 严格区分大小写 - 命名举例:
a. 包的命名:公司域名反写,多级包中间用.隔开。
b.类和接口的命名:首字母大写
c. 变量和方法的命名:第二个单词后首字母大写
d. 常量的命名:字母全大写,单词之间下划线隔开
- 3.常量
- 常量就是执行过程中不发生改变的量,
- 字面值常量
a. 字符串常量: “…” 双引号后的 + 为拼接符,不是运算符
b. 字符: ‘A’,’a’ 参与运算时作为ASCII码参与运算
c. 数字常量: 1 ,2,3,1.2,1.5
d.布尔常量:true/false
e.空常量:null
//字符串后面拼接符的举例
//字符串常量
System.out.println("helloworld");
//字符串 +(拼接符号) 任何数据 = 字符串
System.out.println("helloworld"+'a'+1);//helloworlda1
System.out.println('a'+1+"helloworld");//98helloworld
System.out.println("5+5="+5+5);//5+5=55
System.out.println(5+5+"=5+5");//10=5+5
4.进制
a. 二进制:由0,1组成。以0b开头
b. 八进制:由0,1,…7组成。以0开头
c. 十进制:由0,1,…9组成。整数默认是十进制的
d. 十六进制:由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头5.变量
- 变量就是在程序执行的过程中,在某个范围内其值可以发生改变的量
- 定义格式: 数据类型 变量名 = 数据值;
- 基本数据类型
- 整数类型:
a. byte 字节类型 占用一个字节(-128 ~ 127)
b. short 短整型 占用2个字节
c. int 整型 占用4个字节
d. long 长整型 占用8个字节(定义时变量值后加L/l) - 浮点类型
a. float 单精度 占用4个字节(定义时后加f/F)
b. double 双精度 占用8个字节 - 字符类型
a. char 字符类型 占用2个字节 - 布尔类型
a. boolean 默认值为 false - 注意事项:
a. 变量不能重复定义
b. 注意发生的类型转换
- 整数类型:
byte b1 = 3,b2 = 4 ,b ;
b = b1 + b2 ;
//错误的:byte类型不可能接收一个int类型的值
b = (byte)(b1 + b2) ;
b = 3 + 4 ;
System.out.println("b:"+b);
三.Java基础语法 - 运算符
- 1.算术运算符
- +,-,*,/,%,++,–
- 自增,自减运算
a. ++,–在数据的前面,先自增1或者自减1,然后在运算(赋值)
b. ++,–在数据的后面.先运算(先赋值),然后自增1或者自减1
- 2.赋值运算符
- 基本: =
- 拓展: += -= *= /= %=
拓展运算符隐藏了默认的强制类型转换
//定义变量,第一段代码有问题,没有考虑类型转换
short s =1 ;
s = (s + 1) ;
//下面的代码没有问题,因为运算符默认进行了类型转换
short s = 1 ;
s += 1 ;
System.out.println(s);
- 3.比较运算符
- 关系运算符 <,>,<=,>=,==,!=
- 符号连接的表达式结果都是boolean类型
- 4.逻辑运算符
- 通过逻辑符号来连接boolean的表达式或者值;
- 基本运算符
逻辑单与:& 特点:有false,则false
逻辑单或:| 特点:有true,则true
逻辑异或:^ 特点:相同则为false,不同则为true
逻辑非:! 非false,则true,非true则false
- 扩展运算符
逻辑双与:&& 连接表达式左边为false,右边不执行
逻辑双或:|| 连接表达式左边为true,右边不执行
// boolean flag = (((++x)==4) && ((--y)==5));
boolean flag = (((++x)==3) && ((--y)==5));//左边表达式是false,则右边不执行!
System.out.println("x:"+x);//4,4
System.out.println("y:"+y);//3,4
System.out.println("flag:"+flag);//false,false
- 5.位运算符
- 位与:&
- 特点:有0则0
- 位或|:
- 特点:有1,则1
- 位异或:^
- 特点:相同则为0,不同则为1
- 一个数位异或两次还是它本身
- 反码:~
- 特点:按位取反(底层对补码进行按位取反)
- <<:左移,最左边的最高符号为丢弃,右边补齐0
- 结果为符号左边的数乘2的移动次数次幂
- >>:右移,最高符号位为0,左边补0,最高符号位为1,左边补齐1
- 结果为该符号左边的数据除以2的移动次数次幂
- >>>:无符号右移:不管最高符号位是0还是1,左边补齐0
- 位运算符应用实例:见如下代码
- 位与:&
//请用最有效的方式计算出2*8的结果;
//特点:该符号左边的数据*2的移动次幂
System.out.println(3<<2);
//特点:该符号左边的数据除以2的移动次幂
System.out.println(24>>2);
System.out.println(-24>>>2);`
- 三元运算符
- (表达式)? true的结果 : false的结果;
- 实例:求三个数的最大值
//求三个数据中的最大值
int m = 10 ;
int n = 50 ;
int z = 20 ;
//可以使用中间第三方变量进行实现,实际开发中就使用第三方进行实现
int temp = (m>n) ? m : n ;
//定义max2
int max2 = (temp > z) ? temp : z ;
//一步走:
int max2 = (m>n) ? ((m>z)? m: z) : ((n>z)? n: z) ;//不建议使用
四.Java基础语法 - 键盘录入数据
- Scanner类
- 键盘录入步骤:
- A:创建键盘录入对象:Scanner类: java.util包下的类
固定格式:
Scanner sc = new Scanner(System.in);
- B:导包:位置:class和package中间
import java.util.Scanner;
- C:录入数据:使用对象名调用方法
int a = sc.nextInt();
- D:输出
- A:创建键盘录入对象:Scanner类: java.util包下的类
- 键盘录入实例
- 键盘录入步骤:
//1)创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//2)录入数据
//提示
System.out.println("请输入第一个数据:");
int firstNumber = sc.nextInt() ;
System.out.println("请输入第二个数据:");
int secondNumber = sc.nextInt() ;
//定义个最终变量
int result = firstNumber + secondNumber ;
System.out.println("result:"+result);
第一周的学习就到这里了期待下一周对java语法的深入学习