JavaSE——Day2

1、数据类型与变量

1.1 数据类型

8种基本数据类型 数值型:byte、short、int、double、float、long、char;布尔型:boolean
3种引用数据类型:数组、类、接口

数据类型占用内存
整数型(int)4字节
短整数型(short)2字节
长整数型(long)8字节
字节型(byte)1字节
浮点型(float)4字节
双精度型(double)8字节
布尔型(boolean)1字节
字符型(char)2字节

1.2、标识符:

规则: (包、类、参数、方法、变量等要素命名时使用的字符成为标识符)
1、由字母、数字、下划线(_)和美元符号($)组成
2、不能以数字开头
3、区分大小写
4、长度无限制
5、不能是Java中的保留字

1.3、数据类型转换

ps:boolean类型不能转换成任一数据类型
1、自动类型转换:
容量小的类型转换为容量大的类型
byte、short、int->float->long->double
byte、short、int三者不会相互转换,在计算的时候会自动转换成int类型
2、强制类型转换
容量大的数据类型转换成容量小的数据类型,需要加上强制转换符。ps:转换可能造成精度降低以及数据溢出。
问题:1、定义一个float类型数据时,如float f1=10.1; 10.1的类型数据默认是int类型,但是10.1实际上不是一个整形数据,会报错。那么我们在定义的时候需要在10.1后面加上f,表明10.1是一个float类型数据。同理,在定义long类型数据也是需要加上一个l,表明定义的是一个long类型数据。
2、char类型在定义过程中需要赋初值的时候使用单引号(’ '),其实char类型在计算机中存储的也是数值,所以被归类为数值类型。按照ASCII码记录的数值存入计算机内。

2、方法

方法是用于封装具有一定逻辑功能的程序代码片段。
方法格式是:权限修饰符 返回值类型 方法名(参数列表){
逻辑功能;
return 返回值;
}

public class Demo01 {
    public static void main(String[] args) {
        say();
    }
    public static void say(){
        System.out.println("HelloWorld");
    }
}

问题:根据方法格式写方法应该是
public void say(){ System.out.println("HelloWorld"); }
在主函数里面实现方法的时候发现会报Non-static method ‘say()’ cannot be referenced from a static context错误
原因在于主函数是static的。加载较早。解决方法:我们在say方法前也加上一个static,让say方法和main函数同时加载,这样就能解决问题了。

3、运算符

3.1、算术运算符

运算符描述
+
-
*
/
%取模(余)
++自增(前、后)
自减(前、后)
public static void main(String[] args) {
        //3、1 算术运算符
        int a = 4;
        int b = 3;
        int d=a%b;
        System.out.println(d);// 1
        System.out.println(d++);//1   ++在后面就是执行完再++
        System.out.println(++d);//3   ++在前面就是执行前++
    }

3.2、赋值运算符

运算符描述
=赋值
+=加等(a+=b)与( a=a+b)等价
-=减等(a-=b)与( a=a-b)等价
*=乘等(a*=b)与( a=a*b)等价
/=除等(a/=b)与( a=a/b)等价
%=模等(a%=b)与( a=a%b)等价

3.3、关系运算符

运算符描述
==相等于
!=不等于
<小与
>大于
<=小于等于
>=大于等于

3.4、逻辑运算符

运算符描述
&逻辑与
|逻辑或
^异或
&&短路与
||短路或
!
//3.4 逻辑运算符
        int a = 4;
        int b = 5;
        //异或
        System.out.println(a^b);//a的二进制码是0100 b的二进制码是0101 异或成为0001 (异或表示如果数字相同则0,不同则为1)
        //与
        System.out.println(a>b & b>a);//false
        //或
        System.out.println(a>b | b>a);//true
        //短路与    和    与   的区别是 短路与如果前面条件为false则后面条件不需要看了 直接为false
        System.out.println(a>b && b<a);//false
        //短路或    和    或   的区别是 短路或如果前面条件为true则后面条件不需要看了 直接为true
        System.out.println(b>a || b<a);//true
        //非  取反
        System.out.println(!(a>b));//true

3.5、字符串连接符

//3.5、字符串连接
        String text1="hello world";
        String text2="Java";
        String text3=text1+text2;
        System.out.println(text3);

3.6、三目运算符

三目运算符格式:表达式?表达式为真时的值:表达式为假时的值

//3.6、三目运算符
        int a = 10;
        int b = 20;
        System.out.println(a>b?123:456);//如果a>b则输出123,如果a<b则输出456,当前输出456

4、转义字符

转义字符意义
\n换行,将当前位置移到下一行开头
\r回车,将当前位置移到本行开头
\t水平制表,移到下一个tab位置
\v垂直制表
\代表一个反斜字符
代表一个单引号
"代表一个双引号

5、作用域

作用域可以表示为变量的使用范围,分为成员变量(也被称为全局变量)和局部变量。局部变量只被允许定义的类使用。
2021年8月15日

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值