Java基础(二)

28 篇文章 5 订阅
  1. 标识符
    在程序中自定义一些名称。
    由26个英文字母,数字,符号组(_$)组成。
    定义合法的标识符规则:
    a. 数字不可以开头
    b.不可以使用关键字
    Java严格区分大小写。
    注意:在起名字的时候,为了提高阅读性,要尽量有意义。
    包名:全部小写
    类名接口名:多个单词,每个单词首字母大写
    变量名和函数名:多个单词,第一个单词首字母小写,其他单词每个首字母大写
    常量名:所有字母大写,多个单词是每个单词用下划线连接。
  2. 交换变量
    第一种:容易理解。开辟空间
int temp = n;
n = m;
m = temp;

第二种:如果n和m的值非常大, 容易超出int范围,丢失精度。

n = n + m;
m = n - m;
n = n - m;

第三种:

n  = n ^ m;
m = n ^ m;    //(n ^ m) ^ m = n;
n  = n ^ m;   //n ^ (n ^ m) = m;
  1. switch语句特点:
    a. switch语句选择的类型有四种:byte, short, int, char(现在还有字符串,枚举)
    b. case之间与default 没有顺序。先执行第一个case , 没有匹配的case执行default。
    c. 结束switch语句有两种情况:遇到break, 执行到switch语句结束。
    d. 如果匹配的case或者default 没有对应的break,那么程序会继续向下执行,执行可以执行的语句,知道遇到break或者switch结尾结束。

  2. if和switch之间的选择:
    如果判断的具体数值不多,而是符合byte, short, int, char这四种类型,虽然两个语句都可以使用,建议使用switch, 因为效率稍高。
    其他情况:对区间判断,对结果为boolean类型的判断,使用if,if的使用范围更广。

int x = 0;
for(System.out.println("a"); x < 3; System.out.println("c"))
{
	System.out.println("b");
	x++;
}

输出abcbc

for(int i = 1; i <= 9; i++)
{
     for(int j = 1; j <= i; j++)
     {
         System.out.print(j + "*" + i + "=" + i*j + "\t");
     }

     System.out.println();
 }

输出:乘法口诀

for(int i = 1; i <= 5; i++)
{
     for(int j = i; j <= 5; j++)
     {
         System.out.print("-");
     }
     for(int m = 1; m <= i; m ++)
     {
         System.out.print("* ");
     }

     System.out.println();
 }

输出输出

  1. 函数重载和参数类型和个数有关,和返回值没有关系。
    若两个函数除了返回值不同,其他都相同则报错。不能构成重载。

  2. 堆和栈:
    堆需要JVM释放内存,栈自动释放内存。
    堆内存中的数据自动初始化:0,0.0,0.0f,false;

  3. 进制转换:
    十进制——》二进制

 public static void toBin(int num)
    {
        StringBuffer sb = new StringBuffer();
        while(num > 0)
        {
            sb.append(num%2);
            num /= 2;
        }
        System.out.println(sb.reverse());
    }

查表法:

public static void toBin_table(int num) {
        char[] chs = {'0', '1'};
        char[] arr = new char[32];
        int pos = arr.length;
        while(num!=0) {
            int temp = num & 1;
            arr[--pos] = chs[temp];
            num = num >>> 1;
        }
        for(int i = pos; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
    }

十进制——》十六进制

public static void toHex(int num) {
     StringBuffer sb = new StringBuffer();
     for(int i = 0; i < 8; i++)
     {
         int temp = num & 15;
         if(temp > 9)
             sb.append((char)(temp - 10 + 'A')); // 自动转换为int类型,所以强制转换为char
         else
             sb.append(temp);
         num = num >>> 4; //无符号右移四位
     }
     System.out.println(sb.reverse());

 }

查表法:将所有的元素临时存储起来,建立对应关系。
每一次&1111;后的值作为索引去查找建立好的表,就可以找到对应的元素。
这样比-10 + 'A';简单一些。

public static void toHex_table(int num) // 用数组完成,StringBuffer使用还没学时
{
   char[] chs = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
             'A', 'B', 'C', 'D', 'E', 'F'};
     char [] arr = new char[8];
     int pos = arr.length;
     while(num != 0){
         int temp = num & 15;
         arr[--pos] = chs[temp];
         num = num >>> 4;
     }
     for(int i = pos; i < arr.length; i++)
         System.out.print(arr[i]);
 }

十进制转化为任何进制:

public static void trans(int num, int base, int offset)
{
	if(num==0)
	{
		System.out.println(0);
		return;
	}
    char[] chs = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
            'A', 'B', 'C', 'D', 'E', 'F'};
    char[] arr = new char[32];
    int pos = arr.length;
    while(num!=0)
    {
        int temp = num & (base - 1);
        arr[--pos] = chs[temp];
        num = num >>> offset;
    }

    for(int i = pos; i < arr.length; i++)
        System.out.print(arr[i]);
}

基本数据类型:
byte(1字节)
short(2字节)
int(4字节)
long(8字节)

float(4字节)
double(8字节)

char(2字节)

boolean

基本数据类型隐式转换:
byte -> short -> int ->long -> float -> double

数据类型,数字代表字节
常量:
字符串常量,整数常量,小数常量,字符常量,布尔常量,null

一般的:整数(常量)默认为int类型,小数(常量)默认为double
定义long型变量,最好直接加上L。
定义float型变量,最好直接加上F。

逻辑运算符:用于连接关系表达式
&,|,^,!
&&,|| (相比较与&,|效率要高一些,具有短路效果)

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

二元运算符得运算规则:
整数运算:

  1. 如果两个操作数有一个为Long,则结果也为Long.
  2. 没有Long时,结果为int。即使操作数全为short,byte,结果也是int。
  3. 整数默认为int类型。
    浮点运算:
  4. 如果两个操作数有一个为double,则结果为double。
  5. 只有两个操作数都是float,则结果才为float。
  6. 浮点数默认为double类型。
		byte a = 1;
        byte c = 2;
        byte b = (byte)(a+c);

或者

		byte a = 1;
        byte c = 2;
        int b = a+c;

但是不可以这样

		byte a = 1;
        byte c = 2;
        byte b = a+c;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值