大数据学习-2004.2.21

大数据学习-2024.2.21

数据类型:java是强类型语言,每一个数据都被定义一个固定的数据类型

分类:

​ 1、基本数据类型

​ 整数类型 所占总字节数 范围

​ byte 1个字节 -2^7 ~ 2^7-1

​ short 2个字节 -2^15 ~ 2^15-1

​ int 4个字节 -2^31 ~ 2^31-1

​ long 8个字节 -2^63 ~ 2^63-1

​ 小数类型

​ float 4个字节

​ double 8个字节

​ 字符类型

​ char 根据实际编码来变化的

​ 布尔类型

​ boolean 1个字节

​ 2、引用数据类型(放到数组,面向对象的时候讲解)

变量定义的语句格式:

数据类型 变量名 = 初始化值;

注意事项:

1、在同一作用域(理解为一个大括号内部)下,变量名不能重复

2、整数默认是int类型,要想定义一个long类型的变量,需要在值的后面加上L或者l,推荐L

3、小数默认是double数据类型

4、要想定义一个float类型的变量,需要在值的后面加上F或者f,推荐F

5、遍历必须要有初始化值,否则无法使用

  1. byte-short-int-long-float-double, char-boolean

​ +号:

​ 两种运算:

​ 1、数值加法运算

​ 2、字符串拼接运算(后面再说)

数据类型之间的转换:

​ 1、自动数据类型转换

​ byte,short,char–>int-long-float-double

​ 2、强制类型转换

​ 语句定义格式:目标数据类型 变量名 = (目标数据类型)(表达式或者结果)

​ 注意:强制数据类型转换,有可能会导致精度损失,不建议基本数据类型之间使用强制类型转换

注意事项:

​ 1、变量之间参与运算,会先自动提升数据类型

​ 2、常量之间参与运算,会先计算出结果,再判断是否在目标数据类型范围内

重要结论:

​ 1、加号➕两边只要有一边是字符串,就做字符串拼接操作,结果依旧是字符串

​ 2、加号➕之间的运算顺序是从左向右

​ 3、加号➕两边只要没有字符串,就做加法运算

赋值运算符:

​ = += -= *= /= %=

关系运算符(比较运算符):关系运算符一定是布尔类型的

​ == != > < >= <=

选择结构:

​ if语句格式1:

​ if(关系表达式){

​ 语句体;

​ }

​ 举例:

​ if(丁义杰==“男”){

​ 去男厕所;

​ }

注意事项:

​ 1、当语句体只有一行话的时候,大括号可以省略,建议永远不要省略大括号

​ 2、小括号后面可以加分号,但是加了分号之后表示空语句体。

​ 3、小括号中的结果只能是布尔类型的

if语句定义格式:

​ if(关系表达式1){

​ 语句体1;

​ }else if(关系表达式2){

​ 语句体2;

​ }else if(…){

​ …

​ }…

​ {

​ }else{

​ }

逻辑运算符:参与判断的是布尔类型,结果也是布尔类型

​ & | ^ ! && ||

& 有false则false ; | 有true则true ; ^ 相同则false,不同则true ; ! 将false变成true,将true变成false

&&短路与: 当左边的表达式结果是false的时候,右边就不会执行,结果为false

||短路或: 当左边的表达式结果是true的时候,右边就不会执行,结果为true

三目运算符:

​ 语句定义格式:(关系表达式)?表达式1:表达式2;

​ 注意:三目运算符必须要有一个返回结果

举例:boolean c = (a>3)?true:false;

键盘录入:今天只需要掌握用法即可,后面说到面向对象的时候,才会一一解释其中单词的意思

用法:

​ 1、导包 import java.util.Scanner;

​ 2、创建对象 Scanner sc = new Scanner(System.in);

​ 3、使用对象

​ 接收整数:sc.nextInt()

​ 接收字符串:sc.next()

语句结构:

​ 顺序结构: 程序以自上而下的顺序执行

​ 选择结构: if选择 switch选择

​ 循环结构: for循环 while循环(do…while循环)

package com.shujia.day02;

/*
    位运算符:参与运算的符号两边是数值,结果也是一个数值
        & | ^ ~ >> << >>>
 */
public class WeiOptDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        System.out.println(a & b); // 0
        System.out.println(a | b); // 7
        System.out.println(a ^ b); // 7
        System.out.println(~ b); // -5

    }
}
/*
    3的补码:00000000 00000000 00000000 00000011
    4的补码:00000000 00000000 00000000 00000100

    &:有0则0
        00000000 00000000 00000000 00000011
      &
        00000000 00000000 00000000 00000100
       --------------------------------------
        00000000 00000000 00000000 00000000  --> 0

    |:有1则1
        00000000 00000000 00000000 00000011
      |
        00000000 00000000 00000000 00000100
       --------------------------------------
        00000000 00000000 00000000 00000111  --> 7

    ^:相同则0,不同则1
        00000000 00000000 00000000 00000011
      ^
        00000000 00000000 00000000 00000100
       --------------------------------------
        00000000 00000000 00000000 00000111  --> 7

    ~:0变成1,1变成0
        00000000 00000000 00000000 00000100
     ~
        11111111 11111111 11111111 11111011
     已知补码求原码:
      补码:  1   1111111 11111111 11111111 11111011
      反码:  1   1111111 11111111 11111111 11111010 //补码减1
      原码:  1   0000000 00000000 00000000 00000101 //按位取反  -->  -5
 */



package com.shujia.day02;

/*
    位运算符:
        >>右移:补码向右移动若干位,右边多出的部分丢弃,左边若原本最高位是1,就用1补齐,若原本最高位是0就用0补齐
            右移n位,实际上就是除以2的n次方
        <<左移:补码向左移动若干位,左边多出的部分丢弃,右边就用0补齐,左移n位,实际上就是乘2的n次方
        >>>无符号右移:补码向右移动若干位,右边多出的部分丢弃,左边用0补齐
 */
public class WeiOptDemo2 {
    public static void main(String[] args) {
        System.out.println(24>>2); // 6  24/4=6  24/2^2=6
        System.out.println(3<<2); // 12 3*4=12 3*2^2=12

        System.out.println(-24>>>2); // 1073741818
    }
}

/*
    24的补码:00000000 00000000 0000000 00011000

    24>>2:
        00000000 00000000 0000000 00011000
        00000000 00000000 0000000 00000110(00)  --> 6

    3的补码:00000000 00000000 00000000 00000011
    3<<2:
        00000000 00000000 00000000 00000011
    (00)000000 00000000 00000000 0000001100   --> 12

    -24的原码:10000000 00000000 0000000 00011000
         反码:11111111 11111111 11111111 11100111
         补码:11111111 11111111 11111111 11101000

         11111111 11111111 11111111 11101000
         0011111111 11111111 11111111 111010(00)

 */

  • 39
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值