Java基础知识入门

Java基础知识总结

在正式学习Java之前,我们第一件事情就是安装JDK。在Oracle官网下载最新版的稳定JDK,可以参考教程https://www.cnblogs.com/kelley-2020/p/12786104.html

目前流行使用Java开发的IDE有:Eclipse、IntelliJ Idea、NetBeans等,我们写代码可以在这些开发环境中写,方便我们进行调试运行。

第一个Java程序

public class Hello {//类名是Hello
    public static void main(String[] args) {
        // 向屏幕输出文本:
        System.out.println("Hello, world!");
        /* 多行注释开始
        注释内容
        注释结束 */
    }
} // class定义结束

 一般Java类名的要求:

  • 类名必须以英文字母开头,后接字母,数字和下划线的组合
  • 习惯以大写字母开头

类和方法都可以使用中文命名但是不建议。类名大驼峰命名规则,变量名和方法名小驼峰命名规则。

注意到上面的一小段代码,public是访问修饰符,表示该class是公开的,如果不写public,默认是default。这里的方法名是main,返回值是void,表示没有任何返回值。

从代码可以看出,public除了修饰class外,也可以修饰方法。而关键字static是另一个修饰符,表示静态方法。

Java入口程序规定的方法必须是静态方法,方法名必须是main,括号内的参数必须是String数组。

Java中的三种注释方法

单行注释

// 这是注释

单行注释以双斜线开头,直到这一行的结尾结束。

多行注释

/*
 这是注释
 ...
*/

多行注释以/*星号开头,以*/结束

特殊的多行注释

/**
* 可以用来自动创建文档的注释
*
* @auther xiaoya
*/
public class Hello {
    public static void main(String[] args){
        System.out.println("hello world");
    }
}

Java中的变量

在Java中,变量分为两种:基本类型的变量和引用类型的变量。

基本类型的变量,在Java中,变量必须先定义后使用,在定义变量的时候,可以赋一个初值。变量的一个重要特点就是可以重新赋值,重新赋值后先前的值被覆盖。此外,变量还可以赋值给其他变量。

基本数据类型

基本数据类型是CPU可以直接进行运算的类型,Java定义了以下几种基本数据类型:

  • 整数类型:byte,short,int,long
  • 浮点数类型:float,double
  • 字符类型:char
  • 布尔类型:boolean

Java定义的这些基本数据类型是由计算机内存的基本结构决定的。计算机内存的最小存储单元是字节(byte),一个字节是8个二进制数,即8bit。内存单元从0开始编号,称为内存地址。每个内存地址可以形象的看作门牌号,里面的内存单元看作意见房间。

不同的数据类型占用的字节数不一样。以下是Java基本数据类型占用的字节数:

注意:Java中char是两个字节

整型

Java只定义了带符号的整型,最高位的bit表示符号位(0表示正数,1表示负数)。各种整型表示的最大范围如下所示:

  • byte:-128 ~ 127
  • short: -32768 ~ 32767
  • int: -2147483648 ~ 2147483647
  • long: -9223372036854775808 ~ 9223372036854775807

浮点型

浮点型的数是小数,这是因为小数用科学计数法表示时,小数点是可以浮动的。对于float类型,需要加上f后缀。浮点数可以表示的范围非常大,float类型可最大表示3.4*10^38,而double类型可最大表示1.79*10^308

布尔类型

布尔类型boolean只有true和false两个值,Java语言对布尔类型的存储并没有做规定,因为理论上存储布尔类型只需要1bit,但是通常JVM(Java虚拟机)内部会把boolean表示为4字节整数。至于为什么会这样可以参见博客:Java中boolean类型占用多少个字节

字符类型

字符类型char表示一个字符,但一个字符的大小是2字节。Java的char类型除了可表示标准的ASCLL,还可以表示一个Unicode字符。

public class Main{
    public static void main(String[] args){
        char a = 'A';
        char zh = '中国';
        System.out.println(a);
        System.out.println(zh);
    }
}

引用类型

除了以上的四种基本类型外,其他的都是引用类型。引用类型的变量类似于C语言的指针,它内部存储一个“地址”,指向某个对象在内存的位置。

常量

定义常量时,可以在变量名前面加上final修饰符,这个变量就变成了常量。常量在定义时进行初始化后就不可再次赋值了,不然会导致编译错误。常量名通常全部大写。

常量的作用是用有意义的变量名来避免直接使用数字容易出错的情况。

var关键字

有时候类型的名字太长,写起来比较麻烦时,我们就可以用var来代替。例如:

StringBuilder sb = new StringBuilder();如果想省略变量类型,可以用var关键字代替,这样仅仅是少些了变量类型而已。var sb = new StringBuilder();

运算符优先级

在Java的计算表达式中,运算优先级从高到低依次是:

  • ()
  • ~   ++   --
  • * / %
  • + -
  • <<  >>   >>>
  • &
  • |
  • += -=   *=   /=

类型自动提升和强制类型转换

在运算过程中,如果参与运算的两个数类型不一致,那么计算结果为较大类型的整型。例如,short和int计算时,结果总是int,因为short首先自动被转换为int类型。

// 类型自动提升和强制类型转换
public class Mian{
    public static void main(String[] args){
        short s = 1234;
        int i = 123456;7
        int x = s + i;// s自动转换为int
        short s2 = (short)i;//int强制类型转换为short
    }
}

注意:超出范围的强制类型转换会得到错误的结果,原因是在转换的过程中int的两个高位字节直接被扔掉,仅保留了地位的两个字节。

字符类型

字符类型char是基本数据类型,一个char保存一个Unicode字符。Java在内存中总是使用Unicode表示字符,所以一个英文字符和一个中文字符都使用一个char类型表示,它们都占用两个字节的空间大小。

字符串类型

与char类型不同的是,字符串类型String是引用类型,一对双引号括起来的是一个字符串。一个字符串可以存储0到任意一个字符。

因为字符串使用双引号"..."表示开始和结束,如果字符串本身恰好包含"字符应该如何表示呢?例如"abc"xyz",编译器就无法判断中间的引号是字符串的一部分还是表示字符串结束,这时就需要借助转义字符\。常见的转义字符有:

  • \" 表示字符"
  • \' 表示字符'
  • \\ 表示字符\
  • \n 表示换行符
  • \r 表示回车符
  • \t 表示Tab
  • \u#### 表示一个Unicode编码的字符

Java编译器对字符串做了特殊处理,可以使用+来连接任意字符串和其他数据类型,这样极大方便了字符串的处理。

数组类型

Java中定义一个数组类型的变量,使用数组类型"类型[]",例如int[]。和单个基本类型变量不同,数组初始化必须使用new int[具体数字]表示要创建可容纳几个int类型的元素数组。

Java的数组有几个特点:

  • 数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false。
  • 数组一旦创建之后大小就不可改变。

访问数组中的某个元素,需要使用下标索引。数组所有从0开始,例如,5个元素的数组,索引范围是0~4。可以修改数组中的某个元素,使用赋值语句,如,a[1] = 20。使用数组变量名.length获取数组大小。

字符串数组

如果数组元素不是基本类型,而是一个引用类型,那么修改数组元素会有哪些不同?

字符串是引用类型,因此我们先定义一个字符串数组:

String[] names = {"ABC","XYZ","zoo"};

对于String[]类型的数组变量names,它实际包含3各元素,但每个元素都指向某个字符串对象:

值得注意的是,原来的names[1]指向的字符串"XYZ"并没有变,仅仅是将names[1]的引用从指向"XYZ"改成了指向“cat”。所以其结果是字符串"XYZ"再也无法通过names[1]访问到了。

好了,以上是对Java基础知识的初步认识,对Java的学习旅程才刚刚开始,让我们一起慢慢探索吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值