修饰符 class 类名 {
程序代码
}
eg: System.out.println("这是一个" +
"java程序");
相等于:System.out.println("这是一个java程序");
如:包名,类名,方法名,参数名,变量名
关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。
常量就是在程序中固定不变的值,是不能改变的数据。
整型常量是整数类型的数据,表现形式有四种。
二进制:由数字0和1组成的数字序列组成的数字序列
八进制:以0开头并且其后由0~7(包括0,7)的数字
十进制:(第一位不能为0)由数字0~9(包括0,9)的整数组成的数字序列
十六进制:由0X或0x开头并由其后由0~9,A~F组成的数字序列
分为float单精度浮点数(以f或F结尾)和double双精度浮点数(以D或d结尾)。
- 定义:用于表示一个字符,要用一对英文半角格式的单引号(’ ‘)引出来。
可以是英文字母,数字,标点符号,以及由转义序列表示的特殊字符。
eg: ‘a’, ‘1’, ‘&’, ‘\r’, ‘\u0000’
‘\u0000’表示一个空白字符,即单引号之间无任何字符。
because :Java采用得是Unicode字符集,以\U开头,空白字符对应’\u0000’
- 用于表示一串连续的字符,要用(" ")引起来。
eg:“HelloWorld” “123” " "
- 一个字符串可包含一个字符或多个字符,也可不包含任何字符,即长度为0.
即布尔型的两个值 true和false,用于区别事物的真或假。
只有一个值null,表示对象的引用为空。
用来存储整数数值,即没有小数部分的值。
整数类型分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。
类型名 | 占用空间 | 取值范围 |
---|---|---|
byte | 8位(1个字节) | -2^7 ~ 2^7 -1 |
short | 16位(2个字节) | -2^15 ~ 2^15 -1 |
int | 32位(4个字节) | -2^31 ~ 2^31 -1 |
long | 64位(8节) | -2^64 ~ 2^64 -1 |
占用空间指的是不同类型的变量分别占用的内存大小
取值范围是变量存储的值不能超出的范围
为一个long类型的变量赋值时需要注意一点,所赋值的后面要加上一个字母“L”(或小写“l”),说明赋值为long类型。如果赋的值未超出int型的取值范围,则可以省略字母“L”(或小写“l”)
long num = 20000000L;//所赋的值超出了int型的取值范围,后面必须加上字母L
long num = 198L;//所赋的值未超出int型的取值范围,后面可以加上字母L
long num = 198;//所赋的值未超出int型的取值范围,后面可以省略字母L
类型名 | 占用空间 | 取值范围 |
---|---|---|
float | 32位(4个字节) | 1.4E-45 ~ 3.4E+38,-1.4E-45 ~ -3.4E+38 |
double | 64位(8个字节) | 4.9E-324 ~ 1.7E+308,-1.7E+328 ~ -4.9E-324 |
float f = 123.4f;//为一个float类型的变里赋值,后面必须加上字母f
double dl = 100.1;//为一个double类型的变里赋值,后面可以省略字母d
double d2 = 199.3d;//为一个double类型的变里赋值,后面可以加上字母d
char c = ‘a‘;//为一个char类型的变量赋值字符a
char ch = 97 ;//为一个char类型的变量赋值整数97,相当于赋值字符a
boolean flag = false;//声明一个boolean类型的变里,初始值为falser
flag = true;//改变flag变里的值为truet
1. 整数类型之间可实现转换。如:short,char类型可赋给int,long。
2. 整数类型转float类型,如:byte,char,short,int可赋给float。
3. 其他类型转double,如:byte,char,short,int,long,float可赋给double。
目标类型 变量 = (目标类型)值
int x,y,z;
x = y = z = 5; //为三个变量同时赋值
int x = y = z = 5; //这样写是错误的
& 与: 全真才真,一假则假,
| 或:一真全真, 一假则假,
^ 异或:两边全为真/假,则假。两边不一样,则真。
&& 短路与,|| 短路或:如果第一个已经足够证明式子的真假,则直接进行判断,不考虑后面的式子。
优先级 | 运算符 | 优先级 | 运算符 |
---|---|---|---|
1 | . [] () | 8 | & |
2 | ++ -- ~ ! | 9 | ^ |
3 | * / % | 10 | | |
4 | + - | 11 | && |
5 | << ,>> , >>> | 12 | ‖ |
6 | <, >, <=, >= | 13 | ?: |
7 | == ,!= | 14 | =,*=,/=,+=,-=,<<=, >>=, >>>=, &=, ^=,|= |
public class If{
public static void main(String[] args){
int x = 5;
if( x < 10){
x ++ ;}
System.out.println("x is " +x);
}
}
public class IfElse{
public static void main(String[] args){
int num = 19;
if (num % 2 == 0){
System.out.println("num为偶数");
}
else{
System.out.println("num为奇数");
}
}
}
public class IfElseDuoji{
public static void main(String[] args){
int gread = 75;
if (gread >80){
System.out.println("成绩为优");
}
else if(gread >70){
System.out.println("成绩为良");
}
else if(gread >60){
System.out.println("成绩为中");
}
else {
System.out.println("成绩为差");}
}
}
}
public class Switch{
public static void main(String[] args){
int week = 3;
switch (week){
case 1: //注意是 冒号,不是分号
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default :
System.out.println("您输入的数字错误");
break;
}
}
}
根据条件判断来决定是否执行后面的代码,while循环语句会反复的进行条件判断。只要条件成立,{}内的执行语句会执行,直到条件不成立,循环结束。
格式:while (循环条件) {执行语句}
public class While{
public static void main(Srting[] args){
int x = 1;
while ( x < 4){
System.out.println("x = " +x);
x++;
}
}
}
格式:do {执行语句} while (循环条件)
先进行一次循环,再判断条件是否满足。
public class DoWhile{
public static void main(String[] args){
int x = 1;
do {
System.out.println("x = " +x);
x++;}
}while(x <= 4); //注意分号
}
格式:for(初始化表达式 ; 循环条件 ; 操作表达式){执行语句}
先进行表达式和循环条件,满足则进行执行语句,不满足则无法进入执行语句。执行语句结束后进行操作表达式,再返回循环条件,继续执行语句。直到表达式不满足循环条件。
public class For{
public static void main(String[] args){
int sum = 0;
for ( int i = 1; i <= 4; i++){
sum += i;
}
System.out.println(" sum is " +sum);
}
}
在一个循环语句的循环体中再定义一个循环语句的语法结构。
// for循环嵌套打印直角三角形
public class ForQianTao{
public static void main(String[] args){
int i,j;
for( i = 1; i <= 9; i++){ //外层循环
for(j = 1; j <= i; j++){ //内层循环
System.out.print("*"); //打印*
}
System.out.println();
} //换行
}
}
//break语句(跳出循环)
public class Break{
public static void main(String[] args){
int i,j;
it cast: for( i = 1; i <= 9; i++){
for( j = 1; j <= i; j++){
if( i > 4){
break it cast;}
}System.out.print("*");
}System.out.println();
}
}
修饰符 返回值类型 方法名 ([参数类型 参数名1,参数类型 参数名2]){
执行语句
......
return 返回值;
}
//案例代码 打印不同大小的矩阵
public class Fangfa{
public static void main(String[] args){
printJuzhen(3,4);
printJuzhen(5,7);
printJuzhen(10,12);
}
public static void printJuzhen(int x , int y){
for(int i = 0; i < x; i++){
for(int j; j < y; j++){
System.out.print("*");}
System.out.println();
}
}
}
//有返回值的方法
public class Fanhui{
public static void main(String[] args){
int z = FanHui(5,6);
System.out.println("z = " +z);
}
public static int FanHui(int x, int y){
return x * y;
}
}
//方法重载(求几个数的和)
public class ChongZai{
public static void main(String[] args){
System.out.println("getArr = " +getArr(12,23);
System.out.println("getArr = " +getArr(45.23,12.56);
System.out.println("getArr = " +getArr(12,23.78);
}
public static int getArr(int x, int y){
return x + y;
}
public static double getArr(double x, double y){
return x + y;
}
public static float getArr(int x, float y){
return x + y;
}
}
int[]x = new int [100];
等价于:
int[]x;
x = new int[100];
/*相当于在内存中定义了100个int类型的变量,第一个变量的名称称为x[0],第二个为x[1],以此类推,
第100个为x[99],这些变量的初始值为0.*/
数据类型 | 默认初始值 |
---|---|
byte , short , int , long | 0 |
float , double | 0.0 |
char | 一个空字符,即"\u0000" |
long | 0L |
boolean | false |
引用数据类型 | mull,表示变量不引用任何对象 |
//定义数组及访问数组中的元素
public class Shuzu{
public static void main(String[] args){
int arr[]; //定义数组
arr = new int[100]; //创建数组容量
System.out.println("arr[0] = " +arrr[0]);
System.out.println("arr的长度为" +arr.length);
}
}
//为数组赋值
public class Fuzhi{
public static void main(String[] args){
int arr[] = new int[2]; //new之后的[] 一定要写入容量
arr[0] = 1;
arr[1] = 2;
System.out.println("arr[0] = " +arr[0]);
System.out.println("arr[1] = " +arr[1]);
}
}
ps:new之后的[]一定要写入容量,如果没有容量编译是不通过的。
对于没有的赋值的元素,统一都是0.
当然也要注意输出的值不能超过容量的大小。
//静态初始化、越界
public class Jingtai{
public static void main(String[] args){
int [] arr = {1,2,3,4};
System.out.prinrln("arr[0] = " +arr[0]);
System.out.println("arr[1] = " +arr[1]);
System.out.println("arr[2] = " +arr[2]);
System.out.println("arr[3] = " +arr[3]);
System.out.println("arr[4] = " +arr[4]);//编译到此处不通过
}
}
ps:数组的容量是从0开始打得。例如本例中,初始化定义和赋值数组放一起进行,只有四个数字,
所以结果也是从元素0开始,于元素3结束,即0 1 2 3 。出现4之后即为越界。
//空指针异常
public class Kong{
public static void main(String[] args){
int arr[] = new int [3]; //定义数组
arr[0] = 5; //为第一个元素赋值
System.out.println("arr[0] = " +arr[0]);
arr = null; //给数组赋空
System.out.println("arr[0] = " +arr[0]);
}
}
ps:为整个数组赋空,即这个数组中所有的元素都为空
//使用for循环遍历数组
public class BianLi{
public static void main(String[] args){
int [] arr = {2,3,4,5,6}; //定义数组
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]); //通过索引访问元素
}
}
}
//获取数组中元素的最大值
public class MAX{
public static void main(String[] args){
int []arr = {12,45,98,32,65,78};
int max = getMax(arr);
System.out.println("max is " +max);
}
static int getMax(int arr[]){
int max = arr[0];
for(int x = 1; x < arr.length; x++){
if(arr[x] > max){
max = arr[x];
}
}
return max; //返回最大值
}
}
//数组冒泡排序
public class MaoPao{
public static void main(String[] args){
int arr[] = {9,8,3,5,2};
System.out.println("排序前的数字是");
printShuZu(arr); //打印数组元素
fangfa(arr); //调用排序方法
System.out.println("排序后的数字是");
printShuZu(arr); //打印数组元素
}
//打印数组的方法
public static void printShuZu(int []arr){
for (int i = 0; i < arr.length; i++){
System.out.print(a[i] +" ");
}
System.out.prinln("\n");
}
//冒泡排序的方法
public static void fangfa(int []arr){
for(int i = 0; i < arr.length - 1; i++){
for(int j = 0; j < arr.length -i -1; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;}
}
}
}
}
原文:https://www.cnblogs.com/313-moon/p/12699229.html