JAVA语言基础

JAVA语言基础

1.JAVA主类结构

  1. Java的基本组成单位为类,类体又包括属性与方法两部分。每一个应用程序都必须包括一个main()法,含有main()方法的雷称为主类。

    • 代码中的所以标点符号都是英文字符。
    • 文件名必须要与类名一致(class后的)。主要大小写,java是区分大小的。
  2. main()方法是类体的主方法。该方法从"{"开始至“}”结束。public ,static和void分别是main()方法的权限修饰符,静态修饰符,返回值修饰符,java中main()方法必须声明为public static void 。String args[]是一个字符串类型的数组,它是main()方法的参数。

2.基本数据类型

1.整数类型

  • 整数类型简称整数,用啦储存整数数值,即没有小数部分。可以是整数,也可以是负数。

    数据类型储存空间(字节)取值范围
    byte1-128~127
    short2-32768~32767
    int4-2147483648~2147483647
    long8-9223372036852775808~9223372036852775807
    1.int型
    int x;             //定义int型x
    int x,y;           //同时定义int型下x,y
    int x=10,y=5;      //同时定义x,y并赋值
    int x=5+10;        //定义x,并且给x赋值(5+10)的计算结果
    

    int型在内存占4个字节,也就是32位,在计算机中bit是由0和1来表示的,所以int型值5在计算机中是这样显示的

    00000000 00000000 00000101
    

    int型是java整形值的默认数据类型。当对多个尚未定义的数据类型的整数做运算时,运算的结果位默认的int型。

    2.byte型

    定义方式与int型相同

    3.short型

    定义方式与int型相同。

    4.long型

    由于long型的取值范围要比int型大,且属于高精度数据类型,所以在赋值时要与int型做出区别,需要在整数后面加上L或l。

    long number;
    long num;
    long number=12345667l;
    long num=123123141L;
    
    1. 十进制,不能以0作为数据开头
    2. 八进制,必须以0作为开头
    3. 十六进制,以0X或0x作为开头

2.浮点类型

  • 浮点类型又称为浮点数,用来储存含有小数的部分。java的浮点类型分为单精度浮点型(float)和双精度浮点型(double).
数据类型内存空间取值范围
float4个字节1.4E-45~3.4028235E38
double8个字节4.9E-324~1.7976931348623157E308

在默认情况下的小数都被看作double型,若想使用float型小数,需要在后面添加F或f。

如果定义float型不加F或f,系统会认为位double型,进而出错。

3.字符类型

  • char型用于储存单个字符,占用两个字节的内存空间。在定义字符型变量时要以单引号表示,如’S’,“s”为一个字符串。
  • 转义字符,是一种特殊的字符变量,它以“\”开头,后跟一个或多个字符。

4.布尔类型

  • 布尔类型又称为逻辑类型,简称布尔型,通过Boolean来定义布尔类型,布尔类型分为true和false两个值,分别代表布尔逻辑中的真和假。布尔值不能与整数类型进行转换。

3.常量与变量

1.标识符和关键字

  • 标识符

    标识符可以简单的理解为一个名字,是用于表示类名,方法名,数组名,文件名的有效序列。

    java语言中标识符是由任意的字母,下画线,美元符号和数字组成的,并且第一个不能是数字。java中的标识符是严格区分大小写的。

  • 关键字

    关键字又称为保留字,是Java语言中已经被赋予特定意义的一些单词,这些单词不能作为标识符来使用。

2.声明变量

int age;
int age=29;
char c='a';

3.常量的声明

在程序运行过程中一直不会发生改变的量称为常量,通常也被称为“final变量“。常量在整个过程中只能被赋值一次。常量的名称通常为大写字母。基本语法:

final 数据类型 常量名称=final  double PI=3.1415;

4.变量的有效围

1.成员变量

在类体中声明的变量为成员变量,成员变量在整个类中都有效。类的成员变量又可以分为两种,即静态变量和实例变量。

class i{
    int x=78;
    static int y=99;
}

其中x为实例变量,y为静态变量(也称类变量)。如果在成员变量前面加上关键字static这样成员变量就称为静态变量。静态变量的有效范围可以跨类,甚至可达到整个应用程序之内。对于静态变量,除了能在声明它的类内存取,还可以直接以“类名.静态变量”的方式在其他类内使用。

class o{
static int y=0;
}
class p{
   int z=o.y;
}
2.局部变量

在类的方法体中声明的变量(方法内部定义,“{”与“}”之间的代码中声明的变量)称为局部变量。局部变量只在当前的代码块中有效,也就是之内在“{”与“}”之间使用。

public class i{
    static int c=3;
    public static void main(String args[]){
        int c=4;
        System.out.println("c的值为:"+c);   
    }
}

4. 运算符

1. 赋值运算符

赋值运算符“=”表示,它是一个二元运算符(对两个操作数进行处理),其功能是将右方操作数所含的值赋予给左方的操作数。

int y=100;

由于运算符“=”处理时会先取得右方表示的处理后的结果,因此一个表示式中若有两个即以上的“=”运算符,会从最右边的“=”开始处理。

int a=5;
int c=b=a+4
    则结果为:c=9,b=9;

2.算术运算符

运算符说明实例结果
+12.45f+1527.45
-12.45f-102.45
*5*1575
/15/53
%取余10/31

3.自增和自减运算符

假如a=8
++a;                                     //a先自增 a=9
--a ;                                    //a先自减 a=7
b=++a;                                   //a先自增,再赋值给b,a=9,b=9
b=--a;                                   //a先自减,再赋值给b,a=7,b=7

4.比较运算符

运算符作用举例操作数据结果
>比较左方是否大于右方103>102整型,浮点型,字符型true
<比较右方是否大于左方209<110整型,浮点型,字符型flase
==比较左方是否等于右方110==999基本数据类型,引用型flase
>=比较左方是否大于等于右方1000>=999整型,浮点型,字符型true
<=比较右方是否大于等于左方999<=1000整型,浮点型,字符型true
!=比较左方是否不等于右方100!=100整型,浮点型,字符型flase

5.逻辑运算符

运算符含义用法结合方向
&&逻辑与num1&&num2从左向右
||逻辑或num1||num2从左向右
逻辑非num1!num2从右向左

6. 位运算符

位运算符除“按位与”和“按位或”运算符外,其他只能处理整数的操作数,包括byte,short,char,int和long等数据类型。位运算是完全针对位方面的操作,整型数据在内存中以二进制的形式表示,左边最高位为符号位,0表示整数,1表示负数。负数采用补码的方式。

求负数的补码:先求出负数的原码,再求反码,再+1就是补码。例如:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xTwVFj63-1678017777721)(C:\Users\27484\AppData\Roaming\Typora\typora-user-images\image-20230305190843539.png)]

  • “按位与”运算;

    运算法则为:两个都为1时才为1,否则为0.(&)

  • ”按位或“运算

    运算法则:当两个都是0时,才为0,否则为1(|)

  • "按位取反"运算

    运算法则:1变成0,0变成1(~)

  • "按位异或"运算

    运算法则:当两者相同是为1,当两者不同是为0(^)

  • ”移位操作"

    <<:左移

    />>:右移

    />>>:不带符号右移

    负数的左移,和右移,都是先求出移位前的补码,再移位,再根据移位后的补码,-1变成移位后的反码,再取反变为移位后的原码。

左移:扩大2^n

右移:缩小2^n(小数部分直接省略,当移位后小于1则为1,当大于-1则为-1)

7.三元运算符

表达式?值1:值2//如果表达式为真,则取值1,为假则取值2

8.运算符的优先顺序

  • 增量和减量运算
  • 算术运算
  • 比较运算
  • 逻辑运算
  • 赋值运算

5.数据类型转换

如果从低精度向高精度数据类型转换,则永远不会溢出,并且总是成功;而把高精度数据类型向低精度数据类型转换时,则会有信息丢失,有可能失败。数据转换有两种方式:隐式转换和显示转换。

1.隐式类型转换

从低精度数据类型向高精度数据类型的转换,系统会自动执行,这种转换称为隐式转换。

byte<short<int<long<float<double

2.显示转换

当把高精度的变量的值赋予给低精度的变量时,必须使用显示转换。

int a=(int)45.69f;
long y=(long)45.69f

当把整数赋值给一个byte,short,int,long型变量时,不可以超出它的取值范围,否则必须进行强制转换。
失败。数据转换有两种方式:隐式转换和显示转换。

1.隐式类型转换

从低精度数据类型向高精度数据类型的转换,系统会自动执行,这种转换称为隐式转换。

byte<short<int<long<float<double

2.显示转换

当把高精度的变量的值赋予给低精度的变量时,必须使用显示转换。

int a=(int)45.69f;
long y=(long)45.69f

当把整数赋值给一个byte,short,int,long型变量时,不可以超出它的取值范围,否则必须进行强制转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我要成为全栈糕手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值