重生之路——java学习3

本文介绍了Java中的进制转换、位运算和运算符的使用,包括基本数据类型的运算规则、变量定义、字符串与基本类型之间的运算、进制转换以及算术、赋值、比较、逻辑和位运算符的详细解释,并提供了相关实例和运算符优先级的说明。
摘要由CSDN通过智能技术生成

近期感受:感觉自己很拖沓,想做到高质量的博客真的很难,本次内容涉及到了进制和位运算,我使用了excel进行演示(花费大量的时间绘图),应该能比较容易理解,之后是期末考试周,需要好好准备,下一次更新应该是在一个月之后左右(虽然之前直接立的flag是一周一更)我寒假尽量做到2-3天一更吧,重生之路——day3(20.12.20)更新。加油!!
复习
文档注释:

  1. 文档注释是java特有的

  2. 作用 :用来生成类的说明文档

  3. 生成文档的命令 :javadoc -d mydoc -author -version 源文件名.java

    	javadoc : 开发工具集
    	-d : 参数
    	mydoc : 生成的文档所在的目录名
    	-author -version : 文档注释中使用到的注解
    

一、java关键字的使用

 定义:被java赋予了特殊含义的字符串(单词)
 特点:所有字母都是小写

二、保留字 :java现版本暂未使用,但以后的版本可能作为关键字来使用

三 、标识符的使用
标识符:凡是需要自己命名的地方都叫标识符

四 、标识符的规则与规范
定义合法标识符规则:

	1.由26个英文字母大小写,0-9 ,_或 $ 组成
	2.数字不可以开头
	3.不可以使用关键字和保留字,但能包含关键字和保留字。
	4.Java中严格区分大小写,长度无限制。
	5.标识符不能包含空格。	
	
	
Java中的名称**命名规范**:
	包名:多单词组成时所有字母都小写:xxxyyyzzz
	类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
	变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始
								每个单词首字母大写:xxxYyyZzz
	常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

注意 :起名字时一定要做到见名知意
一 、变量的分类
1.按照数据类型来分 :
基本数据类型
整型 :byte(1字节 = 8bit 表数范围-128 ~ 127) ,short(2字节) , int(4字节),long(8字节)
浮点型 : float(4字节),double(8字节)
字符型 :char(2)字节
布尔类型 :boolean(只有两个值true和false一般忽略大小)
引用数据类型类(String),接口,数组
2.按照位置分(面向对象的时候再说)
二、定义变量的格式
格式: 变量的类型 变量名 = 变量值

	1.声明和赋值同时进行 :
		int number = 10;
	
	2.先声明后赋值 :   
		int number;
		number = 10;
	
	3.同时声明多个变量
		int a,b,c;
		a = b = c = 10;(连等)
			
	4.同时声明多个变量和赋值
		int a = 10,b = 20,c = 30;

三、变量使用的注意点

	1.变量先声明后使用
	2.在同一作用域内的变量名不能相同。
	3.作用域 :声明那个变量所在的那对大括号内
	4.同一个变量可以被多次赋值,后一次赋值覆盖前一次的值

四、 java常量的默认类型

1.java的整型常量默认为 : int
2.java 的浮点型常量默认为 : double

五 、变量类型的说明

1.long类型数值后面要加 : l或L
2.float类型的数值后面要加 : f或F
3.double类型后面可以加(一般不加因为默认的常量就是double类型) :d或D

一 、基本数据类型变量间的运算(不包括boolean)
1.自动类型提升:小容量和大容量的变量进行运算结果用大容量的变量来接收。 byte,short,char -> int -> long -> float -> double
注意
①byte,short,char三者之间做运算会先将自身提升为int
②容量指的是表数范围
2.强制类型转换:自动类型提升的逆过程
格式 :(强转的类型)
注意:强制类型转换可能会损失精度。
代码:

		int number = 128;
		byte b = (byte)number;
		System.out.println(b);
		float f = 12.3f;
		int num = (int)f;
		System.out.println(num);
		int num2 = 100;
		long lon = (long)num2; //小容量赋值给大容量可以使用强制类型转换符但是没必要
		System.out.println(lon);
		//练习题
		double d = 12.3;
		double d2 = 12.2;
		//int sum = (int)d + (int)d2;
		int sum = (int)(d + d2);

二 、基本数据类型(8种)与String间的运算
1.字符串的声明和赋值
String s = “abc”;
String s2 = new String(“ccc”);
2.说明:
①String和基本数据类型只能做连接运算。
②String和基本数据类型运算的结果还为String。
在这里插入图片描述
两个错误:重复定义和类型转换不正确。
在这里插入图片描述
Day3
关于进制(了解)

  • 所有数字在计算机底层都以二进制形式存在。

  • 对于整数,有四种表示方式:

     二进制(binary):0,1 ,满2进1.以0b或0B开头。
     十进制(decimal):0-9 ,满10进1。
     八进制(octal):0-7 ,满8进1. 以数字0开头表示。
     十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。
     				此处的A-F不区分大小写。 如:0x21AF +1= 0X21B0
    

二进制

  • Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位

  • 二进制的整数有如下三种形式:

     原码:直接将一个数值换成二进制数。最高位是符号位
     负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
     负数的补码:其反码加1。
    

在这里插入图片描述


/**
    一、所有数字在计算机底层都以二进制形式存在

    二、
        八进制:以0开头

        二进制:以0b或0B开头

        十六进制:以0x或0X开头

    三、二进制的整数有三种形式:原码,反码,补码

        1.正数的三码合一
        2.负数
            原码:该数正数的二进制,最高位变1
            反码:在原码的基础上除符号位外,0变1,1变0
            补码:在反码的基础上加1
            
*/
public class BinaryTest{
   
    public static void main(String[] args){
   

        //八进制
        int number = 016;//输出14 八进制
        //十六进制
        number = 0x10;//输出16 十六进制
        //二进制
        number = 0b1010;//输出10 二进制
        System.out.println(number);


        int num = 128;
        byte b = (byte)num;
        System.out.println(b);//输出-128
        //int是32位 128的二进制为: 
        //0000 0000 0000 0000 0000 0000 1000 0000 符号位为第一位0,表示正数
        //类型转化后为 1000 0000 符号位为第一位1,表示负数即-128
    }
}

  • 计算机以二进制补码的形式保存所有的整数。

     正数的原码、反码、补码都相同
     负数的补码是其反码+1
    

为什么要使用原码、反码、补码表示形式呢?

计算机辨别“符号位”显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十进制 → 二进制:除2取余的逆

进制间转化

  • 进制的基本转换

     十进制  二进制互转
     		· 二进制转成十进制  乘以2的幂数
     		· 十进制转成二进制  除以2取余数
     二进制  八进制互转
     二进制  十六进制互转
    

下图是我自己为加深印象,自己画的进制转化,个人认为比较简明,若有疑问欢迎与我交流。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
  • 位运算符
  • 三元运算符

算术运算符
在这里插入图片描述

算术运算符的注意问题:

  • 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
  • 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int
    x=3510;x=x/1000*1000; x的结果是?
  • “+”除字符串相加功能外,还能把非字符串转换成字符串.例如:System.out.println(“5+5=”+5+5);
    //打印结果是? 5+5=55 ?
/**
    算数运算符:+(正) -(负) +(加) -(减) * / %(取模、取余)
                                前++ 后++ 前-- 后--  +(连接符)
    后++ :先赋值(运算)自身再加1
    前++:先自身加1,再赋值(运算)
    后-- :先赋值(运算)自身再减1
    前--:先自身减1,再赋值(运算)
*/
public class ArthmeticTest{
   
    
    public static void main(String[] args){
   

        int a = +5;
        System.out.println(a);

        System.out.println(----------------------------);

        int n = 10;
        int n2 = 4;
        int c = n / n2; //2
        double n3 = 10 / 4; //2.0
        //如何得到2.5?
        n3 = (10+0.0) / 4;//2.5
        n3 = 10 / (4 * 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值