(Java)第 3 章 Java 基础程序设计

一、基本数据类型

1. 基本数据类型的使用

  1. 如果想要表示整数就使用 int (例如:表示一个人的年龄),表示小数就使用 double(例如:表示一个人的成绩或者是工资);
  2. 如果描述日期数字或者表示文件或者内存大小(程序中是以字节为单元统计大小的)使用 long;
  3. 如果要实现内容传递(IO操作、网络编程)或者是编码转换(JSP开发中使用 UTF-8 编码)时使用 byte;
  4. 如果要想实现逻辑的控制,可以使用boolean 描述(boolean只有 true 和 false两种值);
  5. 如果要处理中文,使用 char 可以避免乱码问题

2. 转义字符的使用

转义字符描述
\f换页
\\反斜线
\b倒退一格
\'单引号
\r归位
\"双引号
\t制表符 Tab
\n换行
public class DataDemoo05 {
    public static void main(String[] args) {
        char ch1 = '\"';
        char ch2 = '\\';
        System.out.println("ch1 = "+ ch1);
        System.out.println("ch2 = " + ch2);
        System.out.println("\"Hello world!\"");
    }
}

在这里插入图片描述

3. 基本数据类型的默认值

数据类型默认值
byte(byte) 0
short(short) 0
int0
long0L
float0.0f
double0.0d
char\u0000(空,”)
booleanfalse

在某些情况下,Java会给这些没有赋初始值的变量一格确切的默认值,这没有任何意义,是没有必要的,但应该保证程序执行时不会有这种未定义值的变量存在。

对于Java 中的基本类型,因为使用频率很高,所以不是使用 new 创建变量,而是使用一个“自动”变量,这个变量直接存储值,并插入栈内存中

通常 new 创建出来的对象都是保存在堆内存中

基本类型的赋值都是直接的,而不像对象,赋予的只是其内存的引用。举个例子,a = b ,如果 b 是基本类型,那么赋值操作会将 b 的值复制一份给变量 a, 此后若 a 的值发生改变是不会影响到 b 的。作为一名程序员,这应该成为我们的常识

如果是为对象赋值,那么结果就不一样了。对一个对象进行操作时,我们实际上操作的是它的引用。所以我们将右边的对象赋予给左边时,赋予的只是该对象的引用。此时,两者指向的堆中的对象还是同一个

4. 数据类型的转换

public class DataDemo08 {
    public static void main(String[] args) {
        int x = 30;
        float y = 22.19f;
        System.out.println("x/y = " + (x/y));
        System.out.println("10/3.5 = " + (10/3.5));
        System.out.println("10/3 = " + (10/3));
    }
}

在这里插入图片描述
一格整型常量和一个浮点型常量进行计算后,结果也会变为一个浮点型数据
如果是两个 int 类型的常量进行计算的话,最终结果还是 int 类型,而其小数部分将会被忽略掉

任何类型的数据都向 String 转型
(1)两个字符串之间可以通过使用 “+” 进行连接
(2)任何数据类型碰到 String 类型的变量或者常量之后都向 String 类型转换

        public static void main(String[] args) {
            String str = "test";
            int x = 30;
            int i=1,j=2;
            str = str + x;
            System.out.println("str = " + str);
            System.out.println("1+2 = " + i + j); // 这里的 + 表示的是字符串连接的含义
            System.out.println("1+2 = " + (i+j)); // 表示两个数字相加的结果
        }

在这里插入图片描述

5. 数据类型的强制转换

(欲转换的数据类型)变量名称
public class Test {
    public static void main(String[] args) {
        float f = 30.3f;
        int x = (int)f;
        System.out.println("x = " + x);
        System.out.println("10/3 = " + ((float)10/3));
    }
}

在这里插入图片描述

二、运算符、表达式与语句

1. 关系运算符

public class Test {
    public static void main(String[] args) {
       int num = 10;
       if(num % 2 ==0){
           System.out.println(num + " is even");
       }
       else {
           System.out.println(num + " is odd");
       }
       num +=1; // 自加操作
        num -=1; // 自减操作
        System.out.println("num = " + num);
    }
}

在这里插入图片描述

2. 逻辑运算符

逻辑运算符描述
&AND,与
&&短路与
|OR,或
||短路或

为什么会有两种与和或的操作?

&&&
|||1)对于与操作来说,如果第一个条件为假,则后面不管是真是假,最终的结果都是假。
(2)对于或操作来说,如果第一个条件为真,则后面不管是真是假,最终的结果都是真。

(1)对于与来说,要求所有的条件都判断,使用短路与如果第一个条件false,则后面的条件将不再判断。
(2)对于或来说,要求所有的条件都判断,使用短路或如果第一个条件为true,则后面的条件将不再判断

测试 & 与 && 的不同

public class Test {
    public static void main(String[] args) {
       if(10 != 10 & 10/0 ==0){
           System.out.println("条件满足");
       }
    }A	QWE
}

在这里插入图片描述
出错的原因在于,与操作要把所有的条件进行判断,所有计算 10/0 时就出现了错误

public class Test {
    public static void main(String[] args) {
       if(10 != 10 && 10/0 ==0){
           System.out.println("条件满足");
       }
    }
}

在这里插入图片描述

3. 位运算

逻辑运算符描述
&按位与
|按位或
^异或(相同为0,不同为1)
~取反
<<左移位
>>右移位
>>>无符号右移位

在 Java中所有的数据都是以二进制数据的形式进行运算的,即如果是一个int型变量,要采用位运算的时候,必须将其变为二进制数据。

常见的面试题分析
如何更快的计算出 2 的 3 次方?

public class Test {
    public static void main(String[] args) {
     int x = 2;
     System.out.println(x << 2); // 向左移2位
    }
}

三、选择与循环语句

1. 三目运算语句与 switch 语句

三牧运算符的表达式:
变量 = 条件判断? 表达式1:表达式2;
public class Test {
    public static void main(String[] args) {
        String str = "HELLO";
        int flag = 3>2 ? 1:0;
        if (flag == 1){
            System.out.println("Start switch judgment: ");
        }
        else {
            System.out.println("关于三目运算符的使用");
        }
        switch (str){
            case "HELLO":{
                System.out.println("Content is HELLO");
                break;
            }
            case "hello":{
                System.out.println("Content is hello");
                break;
            }
            default:{
                System.out.println("Note the format of the switch");
            }
        }
    }
}

2. 循环结构

  1. do…while 的使用格式
do{
	语句 1;
	语句 2;
}while(循环条件判断);
public class Test {
    public static void main(String[] args) {
        int x = 1;
        int sum = 0;
        do{
            sum +=x;
            x++;
        }while (x<=10);
    }
}
  1. while 循环:在不确定次数但是确定循环结束条件的情况下使用
while(循环条件判断){
	语句 1;
	语句 2;
}
public class Test {
    public static void main(String[] args) {
        int x = 1;
        int sum = 0;
        while (x <= 10){
            sum +=x;
            x++;
        }
    }
}
  1. for 循环:确定循环次数的情况下使用
for(赋值初值;判断条件;赋值增减量){
	
}
public class Test {
    public static void main(String[] args) {
        int sum = 0;
        for (int x=1;x<=10;x++){
            sum +=x;
        }
    }
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

南淮北安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值