class haha{ public static void main(String[] args){ System.out.println("想要输出的内容"); } }
在dos中找到该文件使用javac编译后会生成haha的一个class文件.再使用java haha 就可以在dos窗口中得到
C:\Users\zyf\Desktop>javac c1.java
C:\Users\zyf\Desktop>java haha
想要输出的内容
代码中class,public,static,viod 都属于关键字.以后还会遇到很多类似的关键字,再给变量命名的过程中不可以使用关键字来命名.
先解释class:他表示创建一种类,是java中最基本的单元.
public表示的是访问权限,是权限修饰符.
static是静态修饰符符号.
首先介绍标识符: 他是给变量或类起名字的字符序列,标识符是由数字,字母,下划线,$组成的,且名称的第一位不能是数字,不能是标识符,且区分大小写!!
命名的规则如下
1)给类,接口等起名字: 一个单词的情况下首字母大写,class Age{}
多个单词的情况下,每个单词首字母大写,class HaHa{}
2)变量命名: 一个单词的话小写
多个单词的话,第一个单词小写,后续的每个单次首字母大写
3)常量命名: 一个单词的情况全部大写
多个单词中间需要使用下划线,单词全部大写
常量分为字面值常量和自定义常量.
字面值常量分为以下类:
1)字符串常量: 是使用双引号包裹起来的内容
2)字符常量: 使用单引号包裹起来的内容
3)整数常量
4)小数常量
5)空常量: null
6)布尔常量: true false.
java中变量分为基本数据类型和引用数据类型
整型,浮点型,字符型,布尔型,
1)整型: byte(1字节8位), short , int , long
2)浮点型: float , double
3)字符型: char (2字节)
4)布尔型: 表真假 true false(占1字节)
在变量与变量相加时需要注意的是:需要两个变量的类型相同才可以相加!!
int a = 4; byte b = 2; System.out.println(a + b);
如果不同,如上,运算时系统会自动的将变量b提升为int类型.
如下图等式左边的值(a+b)是int型
int a = 4; byte b = 3; byte c = 0; c = a + b; System.out.println(c);
则会报错: c1.java:18: 错误: 不兼容的类型: 从int转换到byte可能会有损失
c = a + b;
此时需要强制转换
c = (byte)(a + b);
这样就可以运行成功了.系统会自动的将范围小的数提升为范围大的数进行运算,而强制转换是手动的将范围大的转换为范围小的,这样做可能会影响精度.
byte a = (byte)200; System.out.println(a);
如上图,得到的结果是
C:\Users\zyf\Desktop>javac c1.java
C:\Users\zyf\Desktop>java haha
-56
计算机在计算时先将200的原码变为补码.但byte的范围小于200.不强转赋值的话会报错.强转为byte时会将200补码的前3个字节去掉,用余下的补码计算该补码的原码,得到-56.
需要注意的是下图中 a = a + 1;//因为类型不符,报错
a += 1;//可以执行,其中隐含了强制转换.
byte a = 1; a = a + 1; a += 1;
Java中的运算符号由:算数运算符,逻辑运算符,比较运算符,赋值运算符,位运算符,三元运算符构成.
算数运算符中值得注意的是: / 结果默认取整数.
++,--,自加自减运算符单独使用的话结果相同,与其他运算符一起进行运算时,需要注意自加或自减,在前面的话,先自加/减,再参与运算,后面的话先运算,再自加/减.
逻辑运算符包含: 与或非,异或 逻辑双与和逻辑双或.
主要说一下逻辑双与逻辑双或:
1)逻辑双与: ((a ++ == b) && (c ++ == b)):如果前式不满足,直接跳过后者向下执行,
2)逻辑双或:((a ++ == b) || (c ++ == b)): 如果前式满足,直接跳过后者向下执行.
在编写程序的时候优先使用双与,双或,提高执行效率.
包含左移,右移,无符号右移,位与,位或,位非,按位异或.
按位运算都是建立在二进制上,按位操作的.
值得注意的是左移时.补码最右边补零,最高位移除;
右移时.补码最高位为1,左边补1,最高位为0,左边补0,最低位移除.
无符号右移时,不管最高位为0/1,直接补0
三元运算符格式为: (a > b) ? a : b; 可以嵌套使用.
使用键盘录入时需要包含Scanner,可以类比为#include <xxx>.之后直接可以使用该函数完成某些操作
具体格式为
import java.util.Scanner; class haha{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt();// 字符串 String a = sc.next(); } }
1)顺序语句结构:
进入main函数中代码从上至下执行
System.exit (0);可以使函数正常停止,类似return(0)
1)if语句
if (条件){ xxx }else if{ xxx }else if{ xxx }else{ xxx }
2)switch语句
int a = nextInt(); switch (a){ case 值1 : 语句;break; case 值2 : 语句;break; ... default : 语句;break; }
将输入的值与case 后的值匹配,成功执行后面的语句,break跳出switch语句,没有找到匹配项,执行default语句.case 后的值只能跟常量!!
需要注意的是每个语句后跟一个break;如果不跟,程序会一直向下执行,直到遇到break,default不仅仅能放在最后,放在中间,最前面都是可以的.