Java基础语法
注释
注释并不会被执行,是给我们写代码的人看的
书写注释是一个非常良好的习惯
平时写代码一定要注意规范
public class HelloWorld {
public static void main(String[] args) {
//单行注释
//输出一个HelloWorld
System.out.println("HelloWorld!");
/*
多行注释
可以注释一段文字
*/
/**
* JavaDoc:文档注释
* @Description HelloWorld
* @Author WangZP
*/
}
}
标识符
关键字
标识符的注意点
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组成
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary、#abc
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low
数据类型
-
强类型语言
- 要求变量的使用要求严格符合规则,所有变量都必须先定义后才能使用
-
弱类型语言
-
Java的数据类型分为两大类
- 基本类型(primitive type)
- 引用类型(reference type)

public class Demo01 {
public static void main(String[] args) {
//八大基本数据类型
//整数
byte num1 = 10;
short num2 = 20;
int num3 = 30; //最常用
long num4 = 40L; //Long类型要在数字后面加L
//小数:浮点数
float num5 = 50.1F; //Float类型要在数字后面加F
double num6 = 3.1415926;
//字符
char name = 'A';
//字符串
//String 不是关键字,是类
//String namea = "June";
//布尔值:是非
boolean flag1 = true;
boolean flag2 = false;
}
}
数据类型拓展
public class Demo02 {
public static void main(String[] args) {
// 整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; //八进制
int i3 = 0x10; //十六进制 0-9 A-F
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=======================================================");
//=======================================================
//浮点数拓展
//=======================================================
//银行业务怎么表示?钱
// BigDecimal 数学工具类 银行业务使用这个类处理
//=======================================================
//float:有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //返回false
System.out.println(f);
System.out.println(d);
float d1 = 2350123123121f;
float d2 = d1 + 1;
System.out.println(d1 == d2); //返回true
//=======================================================
//字符拓展
//=======================================================
char c1 = 'A';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2);
//所有的字符本质还是数字
//编码 unicode编码 2字节 0 - 65536
char c3 = '\u0061';
System.out.println(c3);
//=======================================================
//转义字符
// \t 制表符
// \n 换行
//=======================================================
System.out.println("Hello\tWorld");
System.out.println("=======================================================");
String pa = new String("Hello World");
String pb = new String("Hello World");
System.out.println(pa == pb);
String pc = "Hello World";
String pd = "Hello World";
System.out.println(pc == pd);
//对象 从内存分析
//布尔值扩展
Boolean flag = true;
if (flag == true){} //新手
if (flag){} //老手 两种写法都是一样的
//Less is More 代码要精简易读
}
}
类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到数据类型转换。
-
低----------------------------------->高 byte,short,char->int->long->float->double //小数的优先级一定大于整数
-
-
运算中,不同类型的数据先转换为同一类型,然后进行运算。
public class Demo03 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i; //强制转换 超过范围会内存溢出
// 强制转换 (类型)变量名 高-->低
// 自动转换 低-->高
System.out.println(i);
System.out.println(b);
int j = 128;
double d = j;
System.out.println(j);
System.out.println(d);
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或精度问题
*/
System.out.println("===============================");
System.out.println((int)23.7);
System.out.println((int)-32.89f);
System.out.println("===============================");
char c = 'a';
int f = c + 1;
System.out.println(f);
System.out.println((char)f);
}
}
变量
-
变量是什么:可以变化的量
-
Java是一种强类型语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}]
//数据类型 变量名 =值 ;可以使用逗号隔开来声明多个同类型变量
- 注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
public class Demo04 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total1 = money * years; //-1474836480, 计算的时候溢出了
System.out.println(total1);
long total2 = money * years; //-1474836480 默认是int,转换之前已经存在问题了
System.out.println(total2);
long total3 = money*((long)years);
System.out.println(total3);
//L l 都表示long类型,书写的时候一般使用L
}
}
- 变量作用域
- 类变量
- 实例变量
- 局部变量
public class Demo06 {
// 类变量 static
static double salary = 18000;
//属性:变量
//实例变量:从属于对象;如果不自行初始化,这个类型的默认值;
// 数值的默认值 0 0.0;
// 布尔值:默认是false
// 除了基本类型,其余的默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new Demo06();
Demo06 demo06 = new Demo06();
System.out.println(demo06.name);
System.out.println(demo06.age);
System.out.println(salary);
}
//其他方法
}
- 变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰命名原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man ,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runPocedure()
public class Demo07 {
// 修饰符,不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
常量
-
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
-
final 常量名 = 值; final double PI = 3.14; -
常量名一般使用大写字符。
运算符
-
Java语言支持如下运算符:
-
算术运算符:+ , - , * , / , % , ++ , --
-
package operator; public class Demo01 { public static void main(String[] args) { // 二元 运算符 // Ctrl+D 复制当前行到下一行 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println((double) a / b); } } -
package operator; public class Demo02 { public static void main(String[] args) { long a = 167879321329L; int b = 123; short c = 10; byte d = 8; //有高级别的与低级别的做运算,输出类型为高级别的数据类型 System.out.println(a+b+c+d); //Long System.out.println(b+c+d); //Int System.out.println(c+d); //Int double e = 8989566266665654.0; float f = 130F; int g = 10; byte h = 5; System.out.println(e+f+g+h); //Double System.out.println(f+g+h); //Float System.out.println(g+h); //Int int i = 10; int j = 3; // 取余; 模运算 System.out.println(i%j); } } -
package operator; public class Demo04 { public static void main(String[] args) { // ++ 自增,-- 自减 一元运算符 int a = 3; int b = a++; //执行完这行代码后,先给b赋值,再自增 // a++ a=a+1; System.out.println(a); // ++a a=a+1; int c = ++a; //执行这行代码前,先自增,然后给c赋值 System.out.println(a); System.out.println(b); System.out.println(c); System.out.println("======================"); int f = 6; // a-- a=a-1 int d = f--; System.out.println(f); int e = --f; System.out.println(d); System.out.println(e); System.out.println("======================"); //幂运算 很多运算,会使用一些工具类来操作 // Math 数学类,里面有许多数学计算方法 double pow = Math.pow(2,3); System.out.println(pow); } } -
赋值运算符:=
-
关系运算符:> , < , >= ,<= , == , != , instanceof
-
package operator; public class Demo03 { public static void main(String[] args) { // 关系运算符返回结果: 正确 错误 布尔值 int a = 10; int b = 20; System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); } } -
逻辑运算符:&& , || ,!
-
package operator; // 逻辑运算符 public class Demo05 { public static void main(String[] args) { // 与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:" +(a && b)); //逻辑与运算,两个变量都为真,结果才为true System.out.println("a || b:" +(a || b)); //逻辑或运算,只要其中一个为真,结果就为true System.out.println("!(a && b):" +!(a && b)); //如果为真则为假,如果是假则变成真 //短路运算 System.out.println("a && b:" +(b && a)); //逻辑与运算,两个变量都为真,结果才为true int c = 5; boolean d = ((c<4)&&(c++<4)); System.out.println(d); System.out.println(c); int e = 6; boolean f = (e>4)||(e++<5); System.out.println(e); System.out.println(f); } } -
位运算符:& , | , ^ , ~ , >> , << , >>>
-
/* 位运算 A = 0011 1100 B = 0000 1101 ----------------------- A&B = 0000 1100 A/B = 0011 1101 A^B = 0011 0001 ~B = 1111 0010 2*8 = 16 2*2*2*2 效率极高!!! << *2 >> /2 */ -
条件运算符:? :(三目运算符)
-
package operator; // 三元运算符 public class Demo08 { public static void main(String[] args) { // x ? y : z //如果x==true,则结果为y,否则为z int score = 90; String type = score<60 ? "不及格":"及格"; //必须掌握 System.out.println(type); } } -
扩展赋值运算符:+= ,-= ,*= ,/=
-
package operator; public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20; a+=b; //a=a+b System.out.println(a); int c = 10; int d = 20; c-=d; //c=c-d; System.out.println(c); int e = 10; int f = 20; e*=f; System.out.println(e); int g = 20; int h = 10; g/=h; System.out.println(g); //字符串连接符 + //只要数字前面有字符串,字符串后加号后面的都按字符串拼接起来 int i = 10; int j = 20; System.out.println(""+i+j); System.out.println(i + j + ""); } }
-
本文来自博客园,作者:[Billing],转载请注明原文链接:https://www.cnblogs.com/Billing/p/16414852.html

浙公网安备 33010602011771号