123.java 存放java代码的文件叫作源文件
Demo.class 叫作中间文件或者二进制文件
主函数对于类来说不是必须的,需要类执行就需要类里带主函数。
一个文件中可以有多个类,每个类都可以带一个主函数。
public class Demo //如果加了public,源文件和class文件名必须一致。 { public static void main(String[] args) { System.out.println("hello java"); } }
classpath : 类文件所在路径
环境变量和当前目录中都有class文件,会执行环境变量中的class文件。
临时配置classpath
set classpath = c:; //先从环境变量中找class文件,找不到,再从当前目录中找 set classpath = c: //只从环境变量中找class文件。不在当前目录中找。不加分号比较好,因为加了分号有时会得到意想不到的执行结果。 set classpath = //清空环境变量
注释:
// 单行注释 /**/ 多行注释 /** */ 文本注释 多行注释不能嵌套多行注释。
1、需求:为什么开发这个软件 2、思路:对实现需求的想法 3、步骤:代码实现
java语言基础:
1、关键字
2、标识符
3、注释
4、常量与变量
5、运算符
6、语句
7、函数
8、数组
标识符
定义标识符的规则:
1、数字不可以开头
2、不可以使用关键字
3、java中严格区分大小写
标识符规范:
包名:所有字母小写 xxxyyyzzz
类名接口名:单词首字母大写 XxxYyyZzz
标量名和函数名:第一个单词首字母小写,第二个单词开始首字母大写 xxxYyyZzz
常量名:所有字母都大写,单词之间用下划线连接。 XXX_YYY_ZZZ
常量
Java中常量的分类:
1、整数常量:所有整数
2、小数常量:所有小数
3、布尔型常量:true、false
4、字符常量:一个数字、字母或者符号用单引号标识的数据
5、字符串常量:用双引号标识的数据
6、null
对于整数java有三种表现形式:
1、十进制
2、八进制
3、十六进制:用0x形式表示
字节: 8个二进制位代表一个字节
二进制在内存中的表现形式是: 4个字节 比如1表示成:0000-0000 0000-0000 0000-0000 0000-0001
负数二进制: 正的二进制取反,然后加1:
比如-1:1111-1111 1111-1111 1111-1111 1111-1110 然后加1 就是1111-1111 1111-1111 1111-1111 1111-1111
变量:
定义变量要先定义变量的数据类型,内存会分配不同大小的内存空间 ==》强类型语言。
byte 占一个8位 -128 到 127
int 占4个8位
float 占4个8位
字符 占2个8位
int和float类型的数据进行运算,结果是float类型。
byte与int相加
自动类型转换
byte b = 3 b = b + 3
- 3是一个固定的值,会做一个自动类型转换,转换成byte类型的数据。所以能赋值给byte类型的空间;
- b+2的值可能会超过byte类型的空间的范围,需要将b+2的结果强制转成byte类型,才能赋值给byte类型的空间。
强制类型转换
byte b = 2 b = (byte) (b + 3) //将b+3的结果强制转换成byte类型。
- float 和 int 占4个8位。如果float和int类型的数据进行运算,结果是float
- 字符和数字相加,结果是数字。
- byte类型的值和int类型的值运算会转换成int类型的值。
string和int相加
字符和数字相加 会按照ASSIC码中字符对应的数字 与数字相加:
System.out.println('a'+1); //结果是:98
原因:英文字符占1个8位,数字占4个8位。相加之后字符会提升到4个8位即整数。
运算符:
1、算术运算符
2、赋值运算符
3、比较运算符
4、逻辑运算符
5、位运算符
6、三元运算符
算数运算符:
取模:
左边小于右边,结果是左边
右边是1结果是0
左右相等,结果是0
如果出现负数,结果看左边,左边是负数结果就是负数。左边是正的结果就是正的。
自加自减:
a++ 先赋值再运算
++a 先运算再赋值
int a = 3,b; b = a++; //a先赋值给b之后,再自加1(a=a+1) System.out.println(b); //结果是3 System.out.println(a); //结果是4
字符串连接符 +:
字符串数据和任何数据使用+相连接,最终都会变成字符串。
System.out.println("5+5="+5+5) //结果是"5+5=55"
转义字符:
:将特殊含义的字符转义成纯字符。
:换行
:退格,相当于backspace
:按下回车键。Windows系统,回车键是
:制表符,相当于tab键。
赋值运算符:
+= -= *= /= %=
short s = 4; //两者的区别在于,+=会做数据类型的自动转换 s = s + 5; //编译会失败,因为s会提升为int类型运算的结果还是int类型,无法赋值给short。右边的和赋值给左边,做两次运算:先相加再赋值。 s+=5; //编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。左右两边的和赋值给左边。只做一次运算:赋值
逻辑运算符:
java不允许 6 < x < 3 这种表达形式
& // 与 皆true为true,一false为false && // 短路与 左为false,右不运算。 | // 或 一True为true。 || //短路或 左为true,右不算 ! // 非 !true 为假 ^ //异或 两边不同为true。
位运算
2、
ps:因为4位1是15,是16进制中单位最大的数。如果换算成8进制就是每三位(7)对应一个8进制数
怎样将10进制的数变成16进制中的字母:
A对应的ASCII码值是65
三元运算符:
a会被提升成整数,因为他和200一起进行运算
思考:
根据一个整数,获得16进制&15,获得8进制&7,获得二进制&1
代码示例:
class Demo { public static void main(String[] args) { byte x = 127; x = (byte)(x + 10); System.out.println(x); } }
class Demo { public static void main(String[] args) { System.out.println('a'+1); } }
class Demo { public static void main(String[] args) { int x = 4270; x = x /1000 * 1000; System.out.println(x); //结果是4000,x除以1000的结果带小数点,因为x整型,得到的结果也是整型,所以小数点右边的被砍掉了。 } }