SE -- 进制 数据类型 运算符 流程控制 函数

进制:

二进制

位bit:计算机内部数据存储的最小单位 一个二进制只可以表示0和1两种状态

字节Byte( B ):字节是计算机中数据处理的基本单位 计算机中以字节为单位存储和解释信息。通常一个字节可以存入一个ASCII码 2个字节可以存放一个汉字国标码

字word:计算机进行数据处理时,一次存取、加工和传送的数据长度

计算机的字长决定了CPU一次操作处理实际位数的多少【一个通常由一个或者多个字节构成】

1Byte = 8bit

ASCII码

八进制 = 2^3

十六进制 = 2^4

public class  VarDemo
{
    public static void main(String[] args) 
    {
        System.out.println(60);   //60
          System.out.println(0x3c); //60
    }
}

一:二进制和十进制 转换

十进制转二进制 原理:对十进制数 除2运算

public class  VarDemo
{
    public static void main(String[] args) 
    {
        System.out.println(Integer.toBinaryString(6));   //6的二进制 110
    }
}

二进制转十进制  二进制乘以2

负数的二进制: 

6    110

-6   6的二进制取反+1 

     00000000 00000000 00000110 

取反 11111111 11111111 11111001

+1   11111111 11111111 11111010 

public class  VarDemo
{
    public static void main(String[] args) 
    {
        System.out.println(Integer.toBinaryString(-6));   //-6的二进制 11111111111111111111111111111010
    }
}

 

变量 将不确定的数据进行存储 需要在内存中开辟空间  数据类型 变量名称  数据

数据类型:在内存中分配了不同大小的内存空间

1、基本数据类型

  整数类型 byte(-2^7 ~ 2^7--1) short int long

  浮点类型 float double

  字符型  char

  布尔型 boolean

2、引用数据类型

  类 class

  接口 interface

  数组 []

数据类型 所占 字节数 https://blog.csdn.net/youcharming/article/details/41987371

 1 public class  VarDemo
 2 {
 3     public static void main(String[] args) 
 4     {
 5         //定义变量的格式 数据类型 变量名 = 初始化值
 6         int x = 4;
 7         System.out.println(x);
 8         x = 10;
 9         System.out.println(x);
10         byte b = 2;
11         short s = 30000;
12         long l = 4l;
13         float f = 2.4f;
14         double d = 3.1415;
15         char ch = '4';  //字符4 内存中占两个八位
16         boolean bo = false; 
17     }
18 }
View Code

 

类型转化

1、自动类型转换

public class  VarDemo
{
    public static void main(String[] args) 
    {
        //类型转换
        byte b = 3;
        b = b + 2;
        System.out.println(b);
    }
}

VarDemo.java:7: 错误: 不兼容的类型: 从int转换到byte可能会有损失

问题:2是int类型 2+b运算后 = int类型, 而b是byte类型无法赋值

2、强制类型转换

public class  VarDemo
{
    public static void main(String[] args) 
    {
        //类型转换
        byte b = 3;
        b = (byte)(b + 2);
        System.out.println(b);
    }
}

解决1:将b+2的和 强制转换为byte类型

表达式的数据类型自动提升

所有的byte型 short型 char型 提升到int

long --- long

float --- float

double --- double

public class  VarDemo
{
    public static void main(String[] args) 
    {
        System.out.println('a');         //a
        System.out.println('a'+1);       //98
    }
}

算数运算符

字符串相加 字符串和任何数据使用+相连接 都会变成字符串

public class  VarDemo
{
    public static void main(String[] args) 
    {
        System.out.println('a' + 'b');             //195
        System.out.println("a" + "b" + (5 + 5));  //ab10
    }
}

转义字符

     window系统是由两个字符来表示  

public class  VarDemo
{
    public static void main(String[] args) 
    {
        System.out.println(""hello"");           //"hello"
        System.out.println("\hello\");           //hello
    }
}

赋值运算符

=  +=  -=  *=  /= %=

public class  VarDemo
{
    public static void main(String[] args) 
    {
        short s = 4;
        // s = s +5;   //错误   VarDemo.java:6: 错误: 不兼容的类型: 从int转换到short可能会有损失
        //s=s+5 编译失败 s会被提升为int类型 运算后结果还是int类型 无法赋值给short类型
        //s+=5 编译成功 运算符在给s赋值时 自动完成强转操作
        s += 5;         
        System.out.println(s);     //9  
    }
}

比较运算符

==  !=  <  >  <=  >= 

instanceof 判断是否是类的对象

逻辑运算符 用于连接布尔型表达式

& | ^ (异或)    左右两边都要进行运算

!

&&  ||   短路运算符  

位运算符

<< 空位补0 被移除的高位丢弃,空缺位补0

>> 被移位的二进制最高位是0 右移后 空缺位补0 最高位是1 空缺位补1

>>> 被移位二进制最高位无论是0还是1 空缺位都用0补

&

|

^ 异或 7^4^4        System.out.println(7^4^4);     //7

练习:

public class  VarDemo
{
    public static void main(String[] args) 
    {  
        //练习1: 最有效的方式算出2乘以8等于几
        System.out.println(2*8);     //16
        System.out.println(2<<3);     //2左移3位
        //练习2: 对两个整数变量的值进行互换
        int m=3 , n=8;
        System.out.println("原来的值 : m = " + m + "; n = " + n);
        /*
        1、第三方变量
        int temp;
        temp = m;
        m = n;
        n = temp;
        System.out.println("m = " + m + "; n = " + n);
        */
        /*
        不用第三方变量
        n = n+m;
        m = n-m;
        n = n-m;
        System.out.println("m = " + m + "; n = " + n);
        */
        //异或
        n = n^m;
        m = n^m;
        n = n^m;
        System.out.println("现在的值 : m = " + m + "; n = " + n);
    }
}

位运算 左移 右移

(未修改)

public class  VarDemo
{
    public static void main(String[] args) 
    {  
        System.out.println(Integer.toBinaryString(60));
        //0000-0000 0000-0000 0000-0000 0011-1100
        //60&15 1100=12  12-10+'A'=C  (60>>4)&15 0011=3  十六进制 3C
        //练习1 十进制转换为十六进制
        int num = 60;
        int n1 = num & 15;
        if(n1>9){
            n1 = n1 - 10 + 'A';
        }
        int temp = num >>> 4;
        int n2 = temp & 15;
        System.out.print(n2);
        System.out.println((char)n1);
    }
}

三元运算符

(条件表达式) ? 表达式1 : 表达式2

两个表达式会自动运算==会自动类型转换

三元运算符 表达式必须是有结果 赋值

程序流程控制

判断结构

if(表达式)   if……else     if……else if……else 多次判断 一个满足就结束

选择结构

switch(表达式byte short int char) case break

循环结构

while 

do……while 无论条件是否满足 循环体至少被执行一次

for 用于控制的循环增量 只在for语句中的  只在for语句中有效

无限循环 while(true) for(;;)

/*
1、获取1~10的和 并打印
2、1~100之间7的倍数的个数 并打印
*/
public class ForTest
{
    public static void main(String[] args)
    {
        int sum = 0;
        for(int x=0; x<=10; x++)
        {
            sum += x;
        }
        System.out.println("1+2+3+...+10 = " + sum);  //1+2+3+...+10 = 55

        //计数器计数
        int count = 0;
        for(int i=1; i<=100; i++) 
        {
            if(i%7 == 0){
                count++;
                System.out.print(i + "、" );    //7、14、21、28、35、42、49、56、63、70、77、84、91、98、
            }
        }
        System.out.println("
个数 : " + count);  //个数 : 14
    }
}

for嵌套

//三角打印输出  九九乘法表
//规律 外循环控制行数 内循环控制列数==每行元素的个数
public class ForForDemo
{
    public static void main(String[] args)
    {
        /*
        *****
        ****
        ***
        **
        *
        */
        for(int i=0; i<5; i++)
        {
            for(int y=i; y<5; y++)
            {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("------------------");
        /*
        *
        **
        ***
        ****
        *****
        */
        for(int i=0; i<5; i++)
        {
            for(int j=0; j<=i; j++)
            {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("-----------");
        //九九乘法表
        /*
        1 * 1 = 1    
        1 * 2 = 2    2 * 2 = 4    
        1 * 3 = 3    2 * 3 = 6    3 * 3 = 9    
        1 * 4 = 4    2 * 4 = 8    3 * 4 = 12    4 * 4 = 16    
        1 * 5 = 5    2 * 5 = 10    3 * 5 = 15    4 * 5 = 20    5 * 5 = 25    
        1 * 6 = 6    2 * 6 = 12    3 * 6 = 18    4 * 6 = 24    5 * 6 = 30    6 * 6 = 36    
        1 * 7 = 7    2 * 7 = 14    3 * 7 = 21    4 * 7 = 28    5 * 7 = 35    6 * 7 = 42    7 * 7 = 49    
        1 * 8 = 8    2 * 8 = 16    3 * 8 = 24    4 * 8 = 32    5 * 8 = 40    6 * 8 = 48    7 * 8 = 56    8 * 8 = 64    
        1 * 9 = 9    2 * 9 = 18    3 * 9 = 27    4 * 9 = 36    5 * 9 = 45    6 * 9 = 54    7 * 9 = 63    8 * 9 = 72    9 * 9 = 81    
        */
        for(int i=1; i<10; i++)
        {
            for(int j=1; j<=i; j++)
            {
                System.out.print(j + " * " + i + " = " + (i*j) + "	");
            }
            System.out.println();
        }

    }
} 

其他流程控制语句

break 选择结构 循环结构 switch  跳出循环

continue 结束本次循环继续下次循环 标号的出现,可以让这两个语句作用于指定的范围

练习

/*
----* 
---* * 
--* * * 
-* * * * 
* * * * * 
*/
public class ForForDemo
{
    public static void main(String[] args)
    {
        for(int i=0; i<5; i++)
        {
            for(int j=5; j>i+1; j--)
            {
                System.out.print("-");
            }

            for(int k=0; k<=i; k++)
            {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

函数  

定义 定义在类中的具有特定功能的一段独立小程序 方法

格式

修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2...)

  执行语句; return 返回值;

返回值类型:函数运行后的结果的数据类型

return 用于结束函数

返回值:该值会返回给调用者

特点

定义函数可以将功能代码进行封装

便于对该功能进行复用

函数只有被调用才会被执行

函数的出现提高了代码的复用性

对于函数没有具体返回值的情况 返回值类型用void表示 该函数中的return语句如果在最后一行可以省略不写

函数中只能调用函数 不可以在函数内部定义函数 定义函数时 函数的结果应该返回给调用者 交由调用者处理

应用

1、明确要定义的功能最后的结果是什么 明确在定义该功能的过程中 是否需要未知内容参与运算

/*
判断两个数 是否相同
思路
1、明确功能的结果 Boolean true false
2、明确是否有未知内容  两个整数参数
*/

重载 overload

在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可

重载 与返回值类型无关 只看参数列表

方便于阅读 优化了程序设计

拼命敲
原文地址:https://www.cnblogs.com/wuyuwuyueping/p/9046013.html