Java基础语法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础语法相关的知识,希望对你有一定的参考价值。
一.基础写法
/*
使用命令行的方式执行的时候,cmd的默认编码是GBK
所以在输入中文的时候需要设置文件的编码格式为ANSI
这样不会出现乱码格式
*/
public class HelloWorld
/*
java文件的名称必须跟public class的名称保持一致
*/
public static void main(String[] args)
/*
1.该代码是所有java程序的入口,如果向执行对应的java代码,则必须要添加这行代码且格式固定,
2.main中的参数列表可以支持多种写法String[] args,String [] args,Strinng args[]
3.main方法中参数名称无所谓,但是一般写成args
4.java代码在编写的时候,每行结尾的时候需要使用;结束
5.java代码块需要使用括起来,前后匹配
*/
System.out.println("学习JAVA人上人");
class Test
/*
一个java文件中可以包含多个class,但是public class只能有一个
*/
二.常量和变量
常量:在程序运行过程中,值不会发生改变的量叫做常量
变量:在程序运行过程中,值会发生改变的量叫做变量
final常量:
- 使用final修饰的变量,只能被初始化一次,变成了常量。
- final常量是有名称的
三.数据类型和运算符
1.标识符
作用:常量、变量、方法、类、包等的名称
命名规则:
- 必须以字母、下划线、$开头
- 其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合
- 对大小写敏感,但对长度无限制
- 不能是Java的关键字
- 常规建议:
- 驼峰标识:
- 类名、接口名首字符大写;
- 方法、变量名首字符小写;
- 多个单词拼接时,每个单词首字符大写。
- 见名知义:不要用拼音
关键字(又叫保留字):Java关键字是Java语言保留供内部使用的,如class用于定义类。
字符集简介:
ASCII:英文字符集 1个字节
ISO8859-1:西欧字符集 1个字节
BIG5:台湾的大五码,表示繁体汉字 2个字节
GB2312:大陆使用最早、最广的简体中文字符集 2个字节
GBK:GB2312的扩展,可以表示简体和繁体中文 2个字节
GB18030:最新GBK的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符 2个字节
Unicode:国际通用字符集 2个字节
2.基本数据类型
Java是强类型语言。(强类型表示变量在定义的时候必须显示声明类型;弱类型表示变量会根据值去推断数据类型)
- 常量有数据类型
- 变量必须声明其数据类型
整型类型:
-2(n-1)--2(n-1)-1减去符号位
byte:使用一个字节存储,数据范围是(-128--127)
short:使用一个字节存储,数据范围是(-32768--32767)
int:使用四个字节存储,数据范围是(-231--231-1,约等于±21亿)
long:使用八个字节存储,数据范围是(-263--263-1)
整型常量
- 十进制整数
- 八进制整数:要求以0开头,如015
- 十六进制整数:要求以0x或0X开头,如0x15
整型变量:
- 默认为int型,声明long型常量必须在数字结尾加l或L(建议使用大写,小写会和1混淆)
浮点类型:
flaot:单精度
double:双精度
浮点类型常量
- 十进制数形式:
- 3.14 314.0 0.314
- 科学记数法形式,如
- 314e2 314E2 314E-2
- double f = 314e2; //314*10^2-->31400.0
- double f2 = 314e-2; //314*10^(-2)-->3.14
浮点型变量
- float类型:单精度类型,尾数可以精确到7位有效数字,会损失一定精度,在很多情况下,float类型的精度很难满足需求。
float f1=1.222222287988;
float f2=1.222222298766468;
System.out.println(f1==f2);//会发现结果是true,应为只有前面七位参与比较。
- double类型:双精度类型 精度是float类型的两倍,绝大部分应用程序都采用double类型。
注意
- 浮点常量默认为double,要变为float,需在后面增加F/f
- 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
字符类型:
char:占用两个字节,使用时用‘’表示(注意‘a’是字符;“a”是字符串)
char a=a;
System.out.println(a==97);//会发现结果是true,a的ASCII码是97
- 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
- char 类型用来表示在Unicode编码表中的字符。
- Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;ASCII码占1个字节,可允许有128个字符(最高位是0),是Unicode编码表中前128个字符。
- Java 语言中还允许使用转义字符 ‘\\’ 来将其后的字符转变为其它的含义,char c2 = \\n; //代表换行符
- char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当做int类型来处理
布尔类型:
boolean:有true和false两值,在存储的时候占一位
3.引用数据类型
类、接口、数组
四.运算符
1.包含
- 算术运算符: +,-,*,/,%,++,--
- 赋值运算符 =
- 扩展赋值运算符:+=,-=,*=,/=
- 关系运算符: >,<,>=,<=,==,!=(返回true或false)
- 逻辑运算符: &&,||,!,&,|
- &和&&的区别
- “&”:无论任何情况,“&”两边的表达式都会参与计算。
- “&&”: 当“&&”的左边为false,则将不会计算其右边的表达式。即左false则false
- “|”和“||”的区别与“&”和“&&”的区别类似。
- 位运算符: &,|,^,~ , >>,<<,>>> (只能操作数值,转换成二进制数)左移乘二,右移除二
- &,|是怎么运算符由两侧的表达式决定
- 条件运算符 ?:唯一的三目运算符
- 语法格式
- x ? y : z
(false?false:true?false:true)//结果false
- 执行过程
- 其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
- 经常用来代替简单的if-else判断!
没有特别说明的,使用方法和C语言差不多,可以去看看之前的。
2.优先级
赋值<三目<逻辑<关系<算术<单目
五.基本数据之间的转换
在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换
转换方式:
- 自动转换
- 强制转换
除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题
除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型
算术运算时的转换
整型,浮点型,字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。
- 3+A+45L
- 5+3.6+ A+3.14f
赋值运算时的转换
1.自动类型转换(左>右)
byte b=10;
System.out.println("b="+b);
int n = b;
System.out.println("n="+n);
00001010 byte 10
00000000 00000000 00000000 00001010 int 10
类型转换的方向
- 低------------------------------------------------------>高
- byte —> short,char—>int —>long—>float —>double
2.强制类型转换(左<右)
int n=270;
System.out.println("n="+n);
byte b = (byte) n;
System.out.println("b="+b);
00000000 00000000 00000001 00001110 int 270
00001110 byte 14
以上是关于Java基础语法的主要内容,如果未能解决你的问题,请参考以下文章