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)类型自动提升

在运算过程中,如果参与运算的两个数类型不一致,那么计算结果为较大类型的整型。例如,shortint计算,结果总是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,永远只有truefalse两个值

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;
·数组一旦创建后,大小就不可改变。

原文地址:https://www.cnblogs.com/linagcheng/p/12158311.html