【小方重新学Java】Java语言基础

Java主类结构

Java是面向对象的语言。Java程序的基本组成单元是类。类中包含属性和方法。每一个应用程序都必须包含一个main()方法。含有main方法的类称为主类。

public class Main {
    static String s1 = "你好";
    public static void main(String[] args){
        String s2 = "Java";
        System.out.println(s1);
        System.out.println(s2);
    }
}

包声明

一个Java程序由多个类组成。语句package Number声明类所在的包

成员变量和局部变量

通常将类的属性称为类的全局变量(成员变量)。方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。

基本数据类型

Java中有8种的基本数据类型来存储数值、字符和布尔值。
在这里插入图片描述

整数类型

整数类型用来存储整数数值,即没有小数部分的数值。可正可负。整数在Java中有3种表示形式:十进制、八进制、十六进制。

  • 10进制 (120、0、-127)
  • 8进制 (0123,-0123) 8进制必须以0开头
  • 16进制 (0x25 0xb01e) 必须以0x或0X开头
    整形数据根据它所占内存的大小,可分为byte、short、int、long4种类型。具有不同的取值范围。
    在这里插入图片描述
    需要注意变量的取值范围,超出范围就会报错。对于long型值。若赋给的值大于int的最值,则需要在数字后面加L表示为长整数。

浮点类型

浮点类型表示有小数部分的数字。Java中分为单精度浮点(float)和双精度浮点(double)。它们具有不同的取值范围,如图所示
在这里插入图片描述
默认情况下,小数会被视为double型。若使用float型小数,需要在后面添加f。

字符类型

  1. char型
    字符类型(char)用于存储单个字符,占用16位(2个字节)的内存空间。在定义字符型变量,要以单引号表示。如’s’表示一个字符,"s"表示一个字符串。
    使用char可以定义字符变量
char c = 'a';
char z = 43;
  1. 转义字符
    转义字符是一种特殊的字符变量,它以反斜杠""开头,后跟一个或多个字符。转义字符具有不同于字符原有的意义。

布尔类型

通过boolean来定义布尔类型,只有true和false两种值。

变量和常量

在程序执行过程中,值不能被改变的量称为常量,值能够被改变的量称为变量。变量与常量的命名都必须使用合法的标识符。
Java中的标识符由任意顺序的字母,下划线,美元符号组成,并且第一个字符不能是数字。

声明变量

变量的使用是程序设计中一个重要的环节。定义变量就是告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间中的值是变化的。这个内存空间就称为变量。为了便于操作,给这个空间取个名字,称为变量名。
声明变量的时候可以是没有赋值,也可以是直接赋给初值。
声明变量,实例代码如下:

int age;
char char1 = 'r';

在这里插入图片描述
由上图可知,系统的内存可以大致分为3个区域。即系统(OS)区、程序区(Program)和数据区(Data)。当程序执行时,程序代码会加载到内存中的程序区,数据暂时存储在数据区中。当执行此代码时,会在数据区配置空间给出这两个变量。

声明常量

在程序执行过程中一直不能被改变的量称为常量,通常也称为’final变量’。常量在整个程序中只能被赋值一次。在为所有的对象共享值时,常量是非常有用的。
在Java中声明一个常量,除了要指定数据类型外,还需要通过final关键字进行限定。常量名通常使用大写字母,但这不是必需的。
当定义的final变量属于类的成员变量的时候,必须在定义的时候就设定它的初值,否则会发生编译错误。

final double PI = 3.1415926;

变量的有效范围

变量的生命周期指的是代码能够范文该变量的区域,若超出该区域,编译时会发生错误。在程序中,一般会根据变量的有效范围分为"成员变量"和"局部变量"。

  1. 成员变量
    在类体中所定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可以分为两种:静态变量和实例变量。
class var{
   int x = 45;            //实例变量
   static int y = 90;     //静态变量
}

其中x为实例变量,y为静态变量(也称为类变量).静态变量使用static修饰
静态变量的有效范围可以跨类,甚至可以达到整个应用程序之内。能够直接以"类名.静态变量"的方式在其他类中使用。
static关键字
被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享。
被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
2. 局部变量
在类的方法体内定义的变量称为局部变量了,局部变量只在当前代码块中有效。
当方法被调用时,Java虚拟机为方法中的局部变量分配内存空间。方法调用结束后,会释放方法中局部变量占用的内存空间,局部变量也将会销毁。
局部变量可以与成员变量同名,此时成员变量将会被隐藏,也就是成员变量在此方法中暂时失效。

class var{
   int x = 45;            //成员变量
   public static void main(String[] args){
	int x = 54;           //局部变量
   }
}

在这里插入图片描述

运算符

赋值运算符

赋值运算符以"=“表示,它是一个二元运算符。
若一个表达式中含有两个以上的”=“运算符,会从最右方的”="开始处理。

int a = 10;
int b = 5;
int c;
c=b=a+4;

算术运算符

算术运算符有加减乘除和取余数
需要注意的是-1对2取余数为-1.

自增和自减运算符

++a和a++的区别在于

  • ++a是使用变量a之前,先使a的值+1
  • a++是使用变量a之后,再使a的值+1

逻辑运算符

在这里插入图片描述
需要注意的是&&(||)和&(|)的区别

  • 都可以作为逻辑与的判断
  • &&(||)会有一个短路的功能
  • &(|)可以用在位运算中

位运算

整数在内存中以二进制的形式存在。如int型变量7的二进制表示为

00000000 00000000 00000000 00000111

最高位是符号位,负数用补码表示。
按位与
按位与的运算表示为&。运算法则为:若整数a、b对应位都是1,结果位才是1。否则是0。
按位或
按位或的运算表示为|。运算法则为:若整数a、b对应位都是0,结果位才是0。否则是1。
按位取反
按位取反的运算表示为!。运算法则为:若整数a对应位是0,结果位是1。否则是0。
按位异或
按位或的运算表示为^。运算法则为:若整数a、b对应位相同,结果位是0。否则是1。

移位操作

Java中的移位运算符有以下3种。

  • <<左移
  • 右移

  • 无符号右移 无论最高位是0还是1,左侧被移空的高位都填入0.

数据类型转换

隐式数据类型转换
类型转换用于将一个值从一种类型转换为另一种类型。如果从低精度转换为高精度,永远不会移除。高精度向低精度转换有可能丢失信息或者失败。
从低级类型到高级类型的转换,系统自动进行。称为隐式转换。
精度从低到高可以排列为byte<int<long<float<double
显式数据类型转换
当把高精度变量的值赋给低精度的变量的时候,必须使用显式(强式)数据类型转换。

(int)3.43
(long)456.5F
(int)'d'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值