J21的Java blog(Note_2)(学习:狂神说的Java基础视频)

Java基础知识

注释、标识符、关键字

注释

 public class HelloWorld {
     public static void main(String[] args) {
         //输出一个Hello World !"单行注释"
         /*
         输出一个Hello World !"多行注释"
         */
         /**
          * JavaDoc:文档注释
          * @Description HelloWorld
          * @Author 舒杰 , 文化学院
          * */
         System.out.println("Hello World !");
     }
 }

标识符

关键字

关键字不能作为标识符。

标识符

类名、变量名、方法名都叫做标识符。

标识符的首字母只能以字母(A-Z or a-z),美元符号($),或者下划线(_)开始。

标识符的后续字母可以以任意字母任意组合(A-Z or a-z),美元符号($),或者下划线(_)以及数字。

关键词不能作为标识符。

标识符是大小写敏感的。定义的Man、和man是两个不同的变量

可以使用中文,但不建议。

数据类型

强类型语言

要求变量的使用要严格符合规定,所有的变量都必须定义后才能使用。

数据类型

数值类型

整数类型

byte 一个字节,范围-128~127 默认是0;

short 两个字节,范围-32768~32767 默认是0;

int 四个字节,范围-2147483648~2147483648 默认是0;

long 八个字节,范围-9223372036754775808~9223372036754775807 默认是0;

浮点类型

float 四个字节 默认是0.0。

double 八个字节 默认是0.0。

字符类型

char 两个字节 默认是0.0。

String 字符串 默认是null。

boolean类型

boolean类型 一位(一个bit)只有ture和false两个数值

默认是false。计算机中0代表假,1代表真,所以也可以理解为默认值是0,而0对应的是false所以默认值是false;

 public class shujvleixing {
     public static void main(String[] args) {
         //整数 :
         int num1 = 10000 ;    //一般使用的整数类型。
         byte num2 = 127 ;     //最小-128~最大127。
         short num3 = 30 ;     //最小-32768~最大32767。
         long num4 = 100L ;    //Long类型要在数字后面加L。
         //浮点数 :
         float num5 = 50.1F;   //float类型需要在后面加上F。
         double num6 = 3.1415926; 
         //字符 :
         char word1 = '舒';     //表示单个字符,以单引号表示。
         //字符串不是关键词,他是一个类
         String word2 ="hello"; //表示一连串字符,以双引号表示。
         //布尔值   只有ture and false 两个值
         boolean flag = false;
     }
 }

引用数据类型

  1. 类 String

  2. 接口

  3. 数组

字节转换

8位(bit)=1字节或1B(byte)

1024B=1KB

1024KB=1MB

1024MB=1GB

1024GB=1TB

数据类型拓展

整数拓展

二进制 以0b开头

八进制 以0开头

十六进制 以0x开头


浮点数拓展,银行业务与浮点数

float

double 本身存在舍入误差

最好完全避免使用浮点数进行比较

可以使用 BigDecimal类 数学工具类进行表示

字符拓展

字符强制类型转化

System.out.println((int)c2);

所有的字符本质还是数字。

转义字符

\t tab 制表符

\n enter 换行

类型转换

public class shujvleixing {
     public static void main(String[] args) {
         //整数 :
         int num1 = 128 ;    //一般使用的整数类型。
         byte num2 = (byte)num1 ;     //最小-128~最大127。
                     //(byte)强制类型转换,转换成byte型。
         System.out.println(num1);
         System.out.println(num2);
     }
 }

输出结果

128 -128

  • 是因为在计算机中int类型是可以接受128的数值所以第一个数值是128

    128在计算机里的原码是1000 0000

  • 而强制类型转换之后 码的二进制表示不变,但是变成了byte的类型

    而byte类型最高支持127,127在计算机里的原码是0111 1111,再加就是1000 0000了,第一位的“0”代表是正数,如果是“1”则是负数,所以最大表示127是这么来的。

  • 注意,我们将强制类型转换后的1000 0000给到byte类型的num2 之后 他的第一位是“1”代表是个负值,这就是-128中,“-”负号的由来。

  • 但是为什么是-128呢?是因为负数在计算机中存在的性质是补码,补码的值的计算,是按权展开,然后求和.

  • 跟原码不同的是表示符号位的权重是负权重,在1000 0000 中可以理解为

    1*(-2^7)+ 0*(-2^6)+ 0*(-2^5)+ 0*(-2^4)+ 0*(-2^3)+ 0*(-2^2)+ 0*(-2^1)+ 0*(-2^0)=-128

    所以第二个值是-128而不是其他的负值。

关于强制类型转换

  1. 不能对boolean值进行转换。

  2. 不能转换成不相干的类型。

  3. 低容量转换成高容量的数值类型,不需要强制类型转换;高容量转换成低容量时才需要强制类型转换。

  4. 强制类型转换可能存在 溢出、精度问题

变量与常量

变量的作用域

类变量

 static int num1 = 100;

实例变量

 String words = "J21"; //String不是一种变量名,而是一种类

局部变量

 public void He(){
     int i = 100;
     //该方法的变量类似与C语言的局部变量但是又不是完全相同。
 }

命名规范

  1. 所有的变量、方法、类名:要求见名知意。

  2. 常量:使用全大写字母以及下划线表示。

  3. 类成员变量、局部变量:首字母小写,单词的第一个字母是大写(驼峰原则)。

  4. 类名:首字母大写和驼峰原则。

  5. 方法名:首字母小写和驼峰原则。

常量

常量值的定义:

 static final double PI = 3.14;
 //通过final定义常量,一般使用全大写字符表示

运算符

++、--

//===========例1==============
 int a = 3;
 int b = a++;
 //先完成运算,运算完成了给a+1。
 int c = ++a;
 //先给a+1,再用a+1的值。
 //最终a+2了,b的值是取了a最初的值,c的值取得是a+2之后的值
     System.out.println(a);
     System.out.println(b);
     System.out.println(c);
 /*
 结果:
     5
     3
     5
 */
 //===========例2==============
         byte seconds = 3 ;
         short minutes = 20;
         System.out.println(seconds);
         minutes =(short) (seconds++ + ++minutes);
         System.out.println(seconds);
         System.out.println(minutes);
 /*
     结果:
     3
     4
     24
 */

数学类·幂运算

 double pow = Math.pow(2,3);
 System.out.println(pow);
 //Math.pow的类型是double类型
 int pow = (int)Math.pow(2,3);
 System.out.println(pow);
 /*
     结果:
     8.0
     8
 */

短路机制

int num_test = 10;
         boolean flag_test = (num_test<5)&&(++num_test<20);
         System.out.println(num_test);
         System.out.println(flag_test);
 /*
     结果:
     10
     false
 */

与或非运算表达

  1. A&B A 按位与B

  2. A|B A 按位或B

  3. A^B A按位异或B

  4. ~B 按位将B取反

<< >>运算符

0b0001_0111<<2

结果: 0b0101_1100

有时候乘法可以以移位来实现

 System.out.println(2*8);
 //上下效果完全一样
 System.out.println(2<<3);

结果:

16

16

三元运算符<?:>

x ? y : z

意思是如果x==ture 则运算结果为y,否则运算结果为false。

字符串连接符

         int a = 10;
         int b = 20;
         System.out.println(a+b+"<-同样是a+b,左右两边为什么不一样->"+a+b);
 /*输出结果:
     30<-同样是a+b,左右两边为什么不一样->1020
     */  
    
 ​

在打印函数中,如果有String类型,那么后面的+会以String类型输出。

学习:狂神说的Java基础视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值