Java——Java基础
Posted 凉城旧巷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java——Java基础相关的知识,希望对你有一定的参考价值。
Java基础
目录
一、hello world程序
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
二、运行Java文件
// Hello.java 为一个编写的Java源码文件
// 可执行文件javac是编译器,而可执行文件java就是虚拟机。
1. javac 把 Hello.java 编译成字节码文件 Hello.class
2. 用 java 命令执行这个字节码文件
// 终端执行Java文件
// 1. 在保存Hello.java的目录下执行命令javac Hello.java
up@up123:~/xxx/xxx$ javac Hello.java // 源码无误时不会用任何输出当前目录下会产生一个Hello.class文件
// 2. 执行Hello.class,使用命令java Hello
up@up123:~/xxx/xxx$ java Hello
// 给虚拟机传递的参数Hello是我们定义的类名,虚拟机自动查找对应的class文件并执行
// Java程序实际上是在Java虚拟机(JVM)中运行的,所以能达到跨平台的目的
注意:
-
一个Java源码只能定义一个
public
类型的class,并且class名称和文件名要完全一致; -
使用
javac
可以将.java
源码编译成.class
字节码; -
使用
java
可以运行一个已编译的Java程序,参数是类名。 -
javac.exe
会获得我们操作系统默认采用的编码格式,而不是java文件的编码
三、Java程序的基本结构以及命名规范
// Java是面向对象的语言,一个程序的基本单位就是class,class是关键字,这里定义的class名字就是Hello
public class Demo {
// ...
public static void main(String[] args) { // 方法名是main
// 方法代码...
}
}
类名命名要求:
- 类名必须以英文字母开头,后接字母,数字和下划线的组合
- 首字母大写,采用驼峰体,如 MainClass
方法命名要求:
- 类名必须以英文字母开头,后接字母,数字和下划线的组合
- 首字母小写,采用驼峰体,如 calculateNumber,goodElement
注释:
//
单行注释/* xxxx */
多行注释
四、基本数据类型
基本数据类型即CPU可以直接进行运算的类型
1、基本数据类型
- 整数类型:byte,short,int,long
- 浮点数类型:float,double
- 字符类型:char
- 布尔类型:boolean
2、数据类型在内存中的大小
计算机内存的最小存储单元是字节(byte),一个字节就是一个8位二进制数,即8个bit
数据类型 | 内存大小/字节(B) |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
char | 2 |
3、基本数据类型详解
// 整型 byte short int long
对于整型类型,Java只定义了带符号的整型,因此,最高位的bit表示符号位(0表示正数,1表示负数)。各种整型能表示的最大范围如下
·byte:-128 ~ 127
·short: -32768 ~ 32767
·int: -2147483648 ~ 2147483647
·long: -9223372036854775808 ~ 9223372036854775807
// e.g.
int a = 10;
// 浮点型 float double
浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,如1234.5可以表示成12.345x10^2,也可以表示成1.2345x10^3,所以称为浮点数。
·float类型可最大表示3.4x10^38,而double类型可最大表示1.79x10^308
·float类型需要在数据后面加 f
·使用科学计数法 12.345x10^2 ===> 12.345e2
// e.g.
float a = 3.14f;
float a = 3.14e10f;
double a = 2.5343;
double b = -2.5343e5;
// 布尔类型 boolean
布尔类型 boolean 只有true和false两个值,布尔类型总是关系运算的计算结果:
// e.g.
boolean b1 = true;
boolean b2 = false;
// 字符类型 char
字符类型 char 表示一个字符。Java的 char类型除了可表示标准的ASCII外,还可以表示一个Unicode字符
·注意char类型使用单引号\'\',且仅有一个字符,要和双引号" "的字符串类型区分开。
// e.g.
char a = \'c\';
// 常量 final
定义变量的时候,如果加上 final 修饰符,这个变量就变成了常量
// e.g.
final int a = 10;
PI = 3.14;
4、类型自动提升与强制转型
(1)类型自动提升
在运算过程中,如果参与运算的两个数类型不一致,那么计算结果为较大类型的整型。例如,short
和int
计算,结果总是int
,原因是short
首先自动被转型为int
int a = 5;
double b = 2.5;
System.out.print(a/b); // 结果为double类型
(2)强制转换
int a = 300; // 00000000 00000000 00000001 00101100
byte b = (byte) a; // 舍弃高位的3个字节 00101100
System.out.print(b); // 44 00101100
五、整型运算符
1、基本运算
// 基本运算
+、-、* // 加减乘
/ // 表示除法,结果为商的整数部分
% // 表示取模,获取除法的余数部分
// 简写
+=、-=、*=、/=
a += 1; // a = a + 1
// 自增、自减运算
++
--
++n表示先加1再引用n
n++表示先引用n再加1
2、移位运算
// >> <<
整数总是以二进制的形式表示,利用二进制对整数进行移位运算
// 当最高位为0时表示整数,为1时表示负数
int a=7; // 00000000 00000000 00000000 00000111
int b = a << 2; // b = 28 00000000 00000000 00000000 00011100
int c = a >> 2; // c = 1 00000000 00000000 00000000 00000001
int d = a << 29; // d = -536870912 11100000 00000000 00000000 00000000
3、位运算
位运算是按位进行与(&)、或(|)、非(~)和异或(^)的运算
& 与 运算的规则是,必须两个数同时为1,结果才为1
| 或 运算的规则是,只要任意一个为1,结果就为1
~ 非 运算的规则是,0和1互换
^ 异或运算的规则是,如果两个数不同,结果为1,否则为0
n = 0 & 1; // 0
n = 0 | 1; // 1
n = 0 ^ 0; // 0
n = 0 ^ 1; // 1
4、运算优先级
优先级从 高 到 低以下:
()
!
~
++
--
*
/
%
+
-
<<
>>
>>>
&
|
+=
-=
*=
/=
六、布尔类型运算符
对于布尔类型boolean
,永远只有true
和false
两个值
1、运算符
比较运算符:>,>=,<,<=,==,!=
与运算 &&
或运算 ||
非运算 !
运算优先级:
- 比较运算符:
>
,>=
,<
,<=
,==
,!=
- 与运算
&&
- 或运算
||
- 非运算
!
2、短路运算
&& // a>1 && b/0>1 如果a大于1为false,那么直接返回false,不会计算后面的条件,即使后面的条件会报错
|| // a>1 || b/0>1 如果a大于1为true,那么直接返回true,不会计算后面的条件,即使后面的条件会报错
七、字符类型
字符类型char
是基本数据类型,它是character
的缩写。一个char
保存一个Unicode字符
因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char
类型表示,它们都占用两个字节
char c = \'a\';
char d = \'中\'
八、字符串类型——引用类型
字符串类型是引用类型
注意要区分空值null
和空字符串""
,空字符串是一个有效的字符串对象,它不等于null
String s = "string";
String s1 = "";
String s2 = null;
System.out.print(s1 == s2) // false
九、数组类型——引用类型
// 定义一个数组
int[] array = new int[5]; // 使用默认值,长度为5
int[] ns = new int[] { 68, 79, 91, 85, 62 }; // 直接为数组设置元素,不用指定长度
·数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false;
·数组一旦创建后,大小就不可改变。
以上是关于Java——Java基础的主要内容,如果未能解决你的问题,请参考以下文章