(以下内容较C语言有较大相同点相同点略谈不同点会详细标出。)
一.代码结构(完全不同)
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello,world");
}
}
1.源文件:
以IDEA为例图中1为源文件类比C语言。
2.类:
类似于C语言主函数。
3.方法:
源文件中所书写全部代码的一“块”,有点类似于C语言的子函数。
总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。
注意:一个源文件只有一个public class,并且该类名称与源文件名称一致。
二.注释
1.“//”其后为注释内容
2.“/* */”其中为注释内容
3./** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生 成一套以网页文件形式体现的程序说明文档
三.标识符
1.命名规则:
数字不能打头,不能是关键字,并且严格区分大小写。
2.建议:
类名首字母大写后面小写,方法名变量名首字母小写后面大写。
四.关键字
1.定义:
Java规定好的,具有特殊含义的字符串。(内容暂不详讲)
五.数据类型
1.本数据类型的分类
整形: byte(1字节) short(2) int(4) long(8)
浮点型 : float double
布尔类型:boolean(无明确只包括 ture false)
字符型:char(2)
注意字符串类型是引用类型不是基本类型。
2.数据转化
(1).分类:
自动型:由范围小到范围大(例如int—>float)不同类型的数据混合运算, 范围小的会提升成范围大的
强制型:由范围大到小(例如float—>int)
注意:并非所有类型都可转化,boolean布尔类型不和其他类型转化,int无法直接强制转化为char(但是并非不可转化
//int->string
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
//String->int
String str = "100";
int num = Integer.parseInt(str);
)。
(2).整形提升:
对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.
而这种情况可能造成数据丢失(byte a=220,byte b=230;但是a+b的结果并不是450。)
六.常量与变量
1.常量:
定义:直接写的且永不改变值的量(包括字符串,整形,浮点数,布尔,空(null)类型)。
2.变量:
定义:经常改变值的量。 书写方法:数据类型 变量名称=值;注意:变量一定要赋值。
(1).整型
短整型: short 注意事项:包装类型是Short。
整型: int 注意事项:包装类型为 Integer。
长整型 : long 注意事项:Long 变量定义结尾加上l或者L(建议“L”)。
字节型变量:byte 注意事项:包装类型为Byte。
(2).浮点型
(浮点数是个近似值,并不是精确值,遵循IE754标准)
单精度:float: 注意事项:包装类型是Float,结尾加上f。
双精度:double: 注意事项:包装类型是Double,默认浮点型为double所以一般情况下不用在结尾加d。
(3).字符型(char)
包装类型:chararter,在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此 一个字符占用两个字节, 表示的字符种类更多;单引号加字母表示该字母的值。
(4).布尔类型
只包含ture(真) 和false(假);, 不存在 1 表示 true, 0 表示 false 这样的用法。
七.运算符
定义:执行数学运算的符号。
1.算数运算符(二元运算符):
“+ - * / %” 注意结果保留整数例如5/2=2,操作符两侧数据类型不同取大的一方。
2.增量运算符
“ += -= *= %=”
a=a+a;和a+=a;一样其他同理。
3.自增/自减运算符 ++ --
单独使用没事,但在混和使用时注意:a++代表先操作再++。++a则是先++再操作。
4.关系运算符
主要有六个: == != < > = ,其计算结果是 true 或者 false。
5.逻辑运算符
&&代表和 ||代表或者。 !非运算;结果均为Boolean。
6.位运算符(对二进制运算)
(1).按位与&
有0则0
(2).按位或|
有1则1
(3).按位异或^
同为0异为1
(4).按位取反~
0变1,1变0
7.条件运算符 a?b ;c
a对吗,对为b,否为c。
8.运算符优先级
* 和 / 的优先级要高于 + 和 -高于>> <<。
9.位移运算符(了解)
移位运算符有三个: > >>> ,都是二元运算符,且都是按照二进制比特位来运算的
(1). 左移 <<:
最左侧位不要了, 最右侧补 0。
(2). 右移 >>:
最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)。
(3)..无符号右移 >>>
: 最右侧位不要了, 最左侧补 0。
注意:左移*2,右移/2;
八.逻辑控制(该部分和C语言相似,略谈)
1.分支(选择)语句
(1.)if
if(){
}else{
}
(2.)swatch
swatch a{
case 1: break(break很重要);
case 2:
....default: break;
}
注意swatch后变量byte、char、short、int,String常量串、枚举类型,注意不能是long类型
2.循环语句
(1).while(){}
注意:不加“{}”结果等同于if选择该语句下一条语句。
brak:结束当前循环并终止循环
continue:结束当前循环但是进行下一次循环。
(2).for( ; ; )
(3).do{
}while()
注意和while的区别,该循环会多循环一次。
九.输入和输出
输入:
system.out.println();//输出字符串并且换行
system.out.print();//输出字符串但是不换行
system.out.printf();//格式化输出类似C语言的printf(“%d...”,变量名);
输出:
注意:需要在开头引用util包
import java.util.scanner;
书写格式:
Scanner scanner=new Scanner(system.in)
十.练习
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .
生成随机数代码:import java.util.Random;
Random random=new Random();
int a=random.nextInt(100);
import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[] arg){
System.out.println("yes/not");
Scanner scanner=new Scanner(System.in);
String a=scanner.next();
String b="yes";
Random random=new Random(100);
int sc=random.nextInt();
if(a.equals(b)){
System.out.println("start please submit");
System.out.println(sc);
while(true){
Scanner ch=new Scanner(System.in);
int choose=ch.nextInt();
if(choose>sc){
System.out.println("too more");
} else if (choose==sc) {
System.out.println("right");
break;
}else {
System.out.println("t00 less");
}
}
}else{
System.out.println("over");
}
}
}