Java语法基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java语法基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含11514字,纯文字阅读大概需要17分钟。
内容图文
![Java语法基础](/upload/InfoBanner/zyjiaocheng/603/c05cb0f34d94418e99c4dd9619715d40.jpg)
Java语法基础
注释
在Java语言中,注释有以下三种方法:
-
单行注释:// 注释内容
-
多行注释:/* 注释内容 */
-
文档注释:/** 注释内容 */
示例:
/**
* (文档注释)
* @Description HelloWorld
* @Author 惟妙惟霄
*/
public class HelloWorld {
public static void main(String[] args) {
//(单行注释)这个程序的作用是输出Hello, world!
System.out.println("Hello, world!");
/*
(多行注释)
这个程序的作用是输出Hello, world!
*/
}
}
标识符
定义:Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
注意:
-
所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
-
首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
-
关键字不能用作标识符
-
标识符是大小写敏感的
-
可以用中文命名,但是极不推荐
-
合法标识符举例:age、$salary、_value、__1_value
-
非法标识符举例:123abc、-salary
示例:
public class Demo01 {
public static void main(String[] args) {
String hello = "Hello, world!"; //小写字母开头,正确
String Hello = "Hello, world!"; //大写字母开头,正确
String $Hello = "Hello, world!"; //美元符开头,正确
String _Hello = "Hello, world!"; //下划线开头,正确
String Hello123 = "Hello, world!"; //非开头位置使用数字,正确
?
//String 123Hello = "Hello, world!"; //数字开头,错误
//String #Hello = "Hello, world!"; //井号开头,错误
//String *Hello = "Hello, world!"; //星号开头,错误
?
String 道德经 = "道可道,非常道。"; //使用中文,可以通过,但极不推荐
}
}
数据类型
Java是强类型语言。Java中的数据类型分为两种:
-
基本类型
-
引用类型
其中,基本数据类型分为以下四种:
-
整数型:byte(占1个字节)、short(占2个字节)、int(占4个字节)、long(占8个字节)
-
浮点型:float(占4个字节)、double(占8个字节)
-
字符型:char(占2个字节)
-
布尔型:boolean(占1位)
而引用数据类型分为以下三种:
-
类
-
接口
-
数组
示例:
public class Demo02 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //long类型在数字的最后加大写字母L
//浮点数
float num5 = 3.14159F; //float类型要在数字最后加F
double num6 = 3.14159;
//字符
char a = 'A';
//布尔值
boolean flag1 = true;
boolean flag2 = false;
}
}
其中,整数还可以使用不同的进制来表示:
-
二进制:0b开头
-
八进制:0开头
-
十进制
-
十六进制:0x开头
示例:
public class Demo03 {
public static void main(String[] args) {
int num1 = 10; //十进制
int num2 = 0b10; //二进制以0b开头
int num3 = 010; //八进制以0开头
int num4 = 0x10; //十六进制以0x开头
System.out.println(num1); //输出10
System.out.println(num2); //输出2
System.out.println(num3); //输出8
System.out.println(num4); //输出16
}
}
另外,浮点型因为精度和溢出的问题,尽量不要作为比较对象。
示例:
public class Demo03 {
public static void main(String[] args) {
float f1 = 2313467468515648F;
float f2 = f1 + 1;
System.out.println(f1==f2); //明明f2=f1+1,但仍然输出true,即f1与f2相等
}
}
而字符类型本质仍是整数。
示例:
public class Demo03 {
public static void main(String[] args) {
char c1 = 'a'; //赋值为a
System.out.println(c1); //输出a
System.out.println((int)c1); //输出97
char c2 = '中'; //赋值为中
System.out.println(c2); //输出中
System.out.println((int)c2); //输出20013
char c3 = 97; //直接用整数赋值
System.out.println(c3); //输出a
char c4 = '\u0061'; //转义为unicode编码
System.out.println(c4); //输出a
}
}
类型转换
由于Java是强类型语言,因而在进行某些整型、浮点型、字符型数据的混合运算中需要进行类型转换。不同类型的数据先转化为同一类型,然后进行运算。
低 ---------------------------------------> 高
byte/short/char —> int —> long—> float —> double
数据类型在进行转换时需注意以下几点:
-
不能对布尔型进行类型转换。
-
不能把对象类型转换成不相关的类型。
-
在把容量小的类型转换为容量大的类型时会进行自动类型转换。
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
转换过程中可能导致溢出或损失精度。
示例:
public class Demo04 {
public static void main(String[] args) {
//高->低 强制类型转换 (类型)变量名
int num1 = 128;
byte num2 = (byte)num1;
System.out.println(num2); //内存溢出,输出-128
?
//低->高 自动类型转换
double num3 = num1;
System.out.println(num3); //输出128.0
?
//精度丢失
float f = 3.5F;
double d = 3.5;
System.out.println((int)f); //输出3
System.out.println((int)d); //输出3
?
//计算中的类型转型,应先转型,再计算
int money = 10_0000_0000; //整数中可以任意使用下划线分割
int years = 20;
int total1 = money*years;
System.out.println(total1); //输出-1474836480,即结果溢出
long total2 = money*years;
System.out.println(total2); //输出-1474836480,即结果溢出
long total3 = money*((long)years);
System.out.println(total3); //输出20000000000,即结果正确
}
}
变量
在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:
type varname [ = value] [, varname[= value] ...];
//类型 变量名 = 值; 可以使用逗号隔开来同时声明多个同类型变量,但不推荐这么做
注意事项:
-
每个变量都有类型,可以是基本类型,也可以是引用类型。
-
变量名必须是合法的标识符。
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
-
变量名尽量遵守首字母小写的驼峰原则,例如:num、lastName、redApple、studentsNameList。
示例:
public class Demo05 {
public static void main(String[] args) {
int num = 123;
String name = "惟妙惟霄";
char x = 'X';
double pi = 3.14159;
}
}
Java语言支持的变量类型有:
-
类变量:独立于方法之外,且用 static 修饰的变量。
-
实例变量:独立于方法之外,不用 static 修饰的变量。
-
局部变量:位于方法之中的变量。
示例:
public class Demo06 {
//实例变量:从属于对象。可以不进行初始化,会赋默认值。
int a; //整数类型的默认值为0
boolean b; //布尔型的默认值为false
String c; //引用类型的默认值为null
?
//类变量:从属于类。使用static修饰。可以不进行初始化,会赋默认值。
static int d;
?
//main方法
public static void main(String[] args) {
//局部变量:必须声明且必须初始化值
int i = 10;
System.out.println(i);
?
//实例变量
Demo06 demo06 = new Demo06(); //需创建实例
System.out.println(demo06.a); //输出0
System.out.println(demo06.b); //输出false
System.out.println(demo06.c); //输出null
demo06.a = 10;
System.out.println(demo06.a); //输出10
demo06.b = true;
System.out.println(demo06.c); //输出true
demo06.c = "惟妙惟霄";
System.out.println(demo06.c); //输出惟妙惟霄
?
//类变量
System.out.println(d); //输出0
d = 12;
System.out.println(d); //输出12
}
}
常量
定义:常量是初始化后无法再次改动的值。常量名一般使用大写字符和下划线。其基本的声明格式如下:
final 类型 常量名 = 值;
//例如: final double PI = 3.14;
示例:
public class Demo07 {
?
//static与final都是修饰符,不存在先后顺序
static final double PI = 3.14;
?
public static void main(String[] args) {
System.out.println(PI); //输出3.14
}
}
运算符
Java语言支持以下运算符:
-
算术运算符:+、-、*、/、%、++、--
-
关系运算符:>、<、>=、<=、==、!=、instanceof
-
位运算符:&、|、^、~、>>、<<、>>>
-
逻辑运算符:&&、||、!
-
赋值运算符:=、+=、-=、*=、/=
-
条件运算符: ?:
-
其他运算符
算数运算符
示例:
package operator;
?
public class Demo01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int d = 40;
?
//二元运算符
System.out.println(a+b); //加法运算,输出30
System.out.println(b-c); //减法运算,输出-10
System.out.println(c*d); //乘法运算,输出1200
System.out.println(a/(double)d); //除法运算,输出0.25
System.out.println(d%c); //取余运算,输出10
?
//一元运算符
System.out.println(a); //输出10
System.out.println(a++); //输出10。当++在后时,先运算,后自增。
System.out.println(a); //输出11
System.out.println(++a); //输出12。当++在前时,先自增,后运算。
?
//利用Math类进行运算
double e = Math.pow(2, 3);
System.out.println(e); //输出8,即2的3次方
int f = Math.abs(-5);
System.out.println(f); //输出5,即-5的绝对值
}
}
关系运算符
示例:
package operator;
?
public class Demo02 {
public static void main(String[] args) {
//关系运算的返回结果是布尔类型,即结果只有true或false
int a = 10;
int b = 20;
System.out.println(a>b); //输出false
System.out.println(a<b); //输出true
System.out.println(a==b); //输出false
System.out.println(a!=b); //输出true
}
}
逻辑运算符
示例:
package operator;
?
public class Demo03 {
public static void main(String[] args) {
//逻辑运算符
//与(and) 或(or) 非(not)
boolean a = false;
boolean b = true;
System.out.println(a&&b); //输出false。逻辑与运算:两个都为真,结果才为真。
System.out.println(a||b); //输出true。逻辑或运算:两个有一个为真,结果就为真。
System.out.println(!a); //输出true。逻辑非运算:真变为假,假变为真。
?
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d); //输出false
System.out.println(c); //输出5,说明c++<4并没有被执行,该语句被“短路”了
}
}
位运算符
示例:
package operator;
?
public class Demo04 {
public static void main(String[] args) {
//位运算
/*
* 设
* A = 1101 0001
* B = 0110 1000
* 则
* A&B = 0100 0000 按位与运算
* A|B = 1111 1001 按位或运算
* A^B = 1011 1001 按位异或运算,即不相等为1,相等为0
* ~B = 1001 0111 按位取反运算
* */
?
/*
题目:2*8如何运算才最快?
思路:2*8 = 2*2*2*2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
<<为左移,每次左移等同于数值*2,但效率极高
>>为右移,每次右移等同于数值/2,但效率极高
*/
System.out.println(2<<3); //输出16
}
}
赋值运算符
示例:
package operator;
?
public class Demo05 {
public static void main(String[] args) {
int a = 10;
int b = 10;
a += b; //等同于a = a + b;
System.out.println(a); //输出20
a -= b; //等同于a = a - b;
System.out.println(a); //输出10
a *= b; //等同于a = a * b;
System.out.println(a); //输出100
a /= b; //等同于a = a / b;
System.out.println(a); //输出10
}
}
条件运算符
示例:
package operator;
?
public class Demo06 {
public static void main(String[] args) {
//条件运算符 a ? b : c
//如果a为true,则执行b,否则执行c
int score = 50;
String mark = score>=60 ? "及格" : "不及格";
System.out.println(mark); //输出"不及格"
}
}
内容总结
以上是互联网集市为您收集整理的Java语法基础全部内容,希望文章能够帮你解决Java语法基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。