我的Java学习之路01——基础语法
Java基础语法
本部分为Java的基础语法
注释
-
注释不会被执行,旨在给写代码的人看的
-
写注释是程序员必须养成的习惯
-
良好的注释习惯
-
三种注释:
//JavaDoc:文档注释 /** * @Description Hello world * @Author 绫汐泷 */ public class Helloworld { public static void main(String[] args){ System.out.println("Hello World!"); //单行注释 /* 多行注释 多行注释 多行注释 */ } }
标识符
-
关键字
abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return strictfp short static super switch synchronized this throw throws transient try void volatile while -
所有标识符都应该以字母(A-Z或a-z),美元符($)或下划线(_)开始
-
首字符之后可以是字母(A-Z或a-z),美元符($)、下划线(_)或任何字符组合
-
不能使用关键字作为变量名或方法名
-
标识符是大小写敏感的
-
可以使用中外文命名,不建议使用,也不建议使用拼音,很Low
数据类型
强类型语言:要求变量的使用严格符合规定,所有变量都必须先定义才能使用
弱类型语言
Java的数据类型:
- 基本类型(primitive type)
- 数值类型
- 整数类型(byte[1个字节]、short[2个字节]、int[4个字节]、long[8个字节])
- 浮点类型(float[4个字节]、double[8个字节])
- 字符类型 (char[2个字节])
- boolean类型 (true 、false[1位])
- 数值类型
- 引用类型(reference type)
- 类
- 接口
- 数组
public class Demo01 {
public static void main(String[] args){
//八大基本数据类型
//整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //Long类型后加L加以区别
//小数:浮点数
float num5 = 50.1F; // float类型后加F加以区别
double num6 = 3.1415926;
//字符
char name = '绫';
//字符串,String不是关键字,是类
//布尔值
boolean flag1 = true;
boolean flag2 = false;
}
}
public class Demo02 {
public static void main(String[] args) {
//整数拓展: 二进制0b 十进制 八进制0 十六进制0x
int i1 = 10;
int i2 = 010; //八进制
int i3 = 0x10; //十六进制
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
//====================================
//浮点数扩展:银行业务怎么表示钱
//BigDecimol 数学工具类
//====================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
System.out.println("=========================");
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
float f1 = 1254851468;
float f2 = f1 + 1;
System.out.println(f1==f2);
//=======================================
//字符扩展:
//=======================================
System.out.println("=========================");
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 - 65535
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3); //a
//转移字符
// \t 制表
// \n 换行
System.out.println("=========================");
System.out.println("Hello\nworld" );
}
}
| 转义字符 | 意义 |
|---|---|
| \a | 响铃 |
| \b | 退格,将当前位置移到前一列 |
| \f | 换页,将当前位置移到下页开头 |
| \n | 换行,将当前位置移到下一行开头 |
| \r | 回车,将当前位置移到本行开头 |
| \t | 水平制表 |
| \v | 垂直制表 |
| \ | 代表一个反斜杠 |
| ' | 代表一个单引号字符 |
| '' | 代表一个双引号字符 |
| ? | 代表一个问号 |
| \0 | 空字符 |
| \ddd | 1到3位八进制所代表的任意字符 |
| \xhh | 十六进制所代表的任意字符 |
类型转换
Java为强类型语言,所以有些运算需要类型转换
低---------------------------------------->高
byte,short,char—> int -> long ->float ->double
运算中,不同类型的数据
-
强类型转换 高--低
-
自动类型转换 低--高
-
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量时,强制转换
4.转换时可能存在内存溢出,或者精度问题!
public class Demo03 { public static void main(String[] args) { int i = 128; byte b = (byte) i; //内存溢出 double c = i; //强制转换 (类型)变量名 高--低 //自动转换 低--高 System.out.println(i); System.out.println(b); System.out.println(c); /* 1.不能对布尔值进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量时,强制转换 4.转换时可能存在内存溢出,或者精度问题! */ System.out.println("========================="); System.out.println((int)23.7); //23 System.out.println((int)-45.32); //-45 } } -
内存溢出
public class Demo04 { public static void main(String[] args) { //操作比较大的数时,注意内存溢出问题 //JDK7新特性 , 数字之间可以用下划线分隔 int money = 10_0000_0000; int years = 20; int toatal = money*years;//-1474836480 内存溢出 long toatal2 = money*years;//默认是int,转换之前存在问题 long total3 = money*((long)years);//先把一个数转换为long System.out.println(toatal); System.out.println(toatal2); System.out.println(total3); } }
变量、常量、作用域
变量:可以变化的量
-
Java是强类型语言,每个变量都必须声明其类型
-
Java变量是程序中基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}]; //数据类型 变量名 = 值:可以使用逗号隔开来声明多个同类型变量public class Demo05 { public static void main(String[] args) { //程序可读性 int a = 1; int b = 2; int c = 3; String name ="绫汐泷"; char X = 'x'; double pi = 3.14; } }注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每个声明都必须以分号结束
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Demo06 { //类变量 static static double salary = 2500; //属性:变量 //实例变量:从属于对象:如果不自行初始化,这个类型的默认值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.age); System.out.println(demo06.name); //类变量 static System.out.println(salary); } //其他方法 public void add(){ } }
常量:不会变动的值,不允许被改变
final 常量名 = 值;
final double PI = 3.14;
- 常量名一般使用大写字符
public class Demo07 {
//修饰符不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(), runRun()
运算符
-
算术运算符:+,-,*,/,%,++,---
-
赋值运算符 =
-
关系运算符:>, <, >=, <=, ==, != ,instanceof
-
逻辑运算符: &&, ||,!
-
位运算符:&,|,^, ~, >>, <<, >>>
-
条件运算符 ? :
-
扩展赋值运算符:+=, -=, *=, /=
package operator; public class Demo01 { public static void main(String[] args) { //二元运算符 //Ctrl + D : 复制当前行到下一行 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/(double)b); } }package operator; public class Demo02 { public static void main(String[] args) { long a = 44644684; int b = 123; short c = 10; char d = 8; System.out.println(a+b+c+d);//Long System.out.println(b+c+d);//Int System.out.println(c+d);//Int } }package operator; public class Demo03 { public static void main(String[] args) { //关系运算符返回的结果: 正确 错误 布尔值 int a = 10; int b = 20; int c = 23; //模运算 System.out.println(c%a); System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); } }package operator; public class Demo04 { public static void main(String[] args) { //++ -- 自增,自减 一元运算符 int a = 3; int b = a++; //先用后加 //a++ a = a + 1; System.out.println(a); //a++ a = a + 1; int c = ++a;//++a a = a+1; 先加后用 System.out.println(a); System.out.println(b); System.out.println(c); //幂运算 很多运算使用工具类操作 double pow = Math.pow(3,2); System.out.println(pow); } }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)); //取反 //短路运算 int c =5; boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c); } }package operator; //位运算 public class Demo06 { public static void main(String[] args) { /* 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 效率极高 << >> 0000 0000 0 0000 0001 1 0000 0010 2 0000 0100 3 0000 0100 4 0000 1000 8 */ System.out.println(2<<3); } }package operator; //条件运算符 public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20; a+=b;//a = a+b a-=b; //a = a-b System.out.println(a); //字符串连接符 + String System.out.println(""+a+b); System.out.println(a+b+""); } }package operator; //三元运算符 public class Demo08 { public static void main(String[] args) { //x ? y :z //如果x==true ,则结果为y,否则结果为z int score = 80; String type = score <60?"不及格":"及格"; System.out.println(type); } }
包机制
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
-
语法格式:
package pkg1[.pkg2[.pkg...]]; -
一般利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用“import”语法可完成此功能
import package1 [.package2...].(classname|*);
JavaDoc
- javadoc命令是用来生成自己API文档的
- 参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的JDK版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
package Base;
/**
* @author SpritHong
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**
* @author Spirit
* @param name
* @return
* @throws
*/
public String test(String name) throws Exception{
return name;
}
}
作者:SpiritHong —— 绫汐泷
出处:https://www.cnblogs.com/spirithong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号