首页 > 其他分享 >day2

day2

时间:2022-10-30 15:22:06浏览次数:40  
标签:String int day2 System println public out

数据类型扩展

public class Dome03 {
   public static void main(String[] args) {
       //整数拓展 : 进制     二进制0b   十进制   八进制0     十六进制0x
       int i=10;
       int i1=010;//八进制0       逢八进一
       int i2=0x10;//十六进制0x 0~9   A~F 16         逢十六进一
       System.out.println(i);
       System.out.println(i1);
       System.out.println(i2);
       System.out.println("================================================================");
       // ====================================================
       //浮点数拓展     问题: 银行业务怎么表示?
       //BigDeciaml     用一个数字工具的类来表示
       //======================================================
       //float     有限,离散,舍入误差,大约,接近但不等于
       //double

       float f =0.1f;//01.
       double d1=1.0/10;
       System.out.println(f);
       System.out.println(d1);
       System.out.println(f==d1);//运行可知两个虽然都等于0.1,,但是两个的值并不相等
       //再举个例子
       float d2=23123131232f;
       float d3=d2+1;
       System.out.println(d2==d3);//输出结果为 true

       //总结:最好完全避免使用浮点数进行比较
       //总结:最好完全避免使用浮点数进行比较
       //总结:最好完全避免使用浮点数进行比较

       //===========================================================
       //字符拓展
       //==========================================================
       System.out.println("================================================================");
       char c1='a';
       char c2='中';

       System.out.println(c1);
       System.out.println((int)c1);//int代表的是强制转换,

       System.out.println(c2);
       System.out.println((int)c2);//int代表的是强制转换

        //所有的字符本质还是数字
       //编码   Unicode 表:(例如 97=a 65=A)   2字节   65536
       //格式 U0000   UFFFF
       //例如
       char c3='\u0061';
       System.out.println(c3);
       //输出3
       //==========================================================
       //转义字符
       //==========================================================

       // \t 空格
       // \n   换行
       //......
       System.out.println("================================================================");

       String sa= new String("hello world");
       String sb= new String("hello world");
       System.out.println(sa==sb);


       String sc="hello world";
       String sd="hello world";
       System.out.println(sc==sd);
       //对象   从内存分析

       //布尔值扩展
       boolean flag=true;
       if (flag==true);//这行代码与if (flag){};一样
       //Less is More!     代码要精简易读

      }
  }

 

 

 

类型转换

由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

低------------------------------>高

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

(小数的优先级一定大于整数)

 

运算中,不同类型的数据先转化为同一类型,然后进行运算。

 

  • 强制类型转换 (从高到低需要强制转换) 例如:int i=120

    byte b= i, 就要在i前面加上(byte),如byte b = (byte)i

  • 自动类型转换(从低到高不不需要强制转换) 可以直接进行转换

 

public class Dome04 {
   public static void main(String[] args) {

       byte i=126;
        int b =i;//运行会发现内存溢出

       //强制转换: (类型)+变量名   高到低需要强制转换
       //自动转换   低--高不需要强制转换


       System.out.println(i);
       System.out.println(b);
       
       
  }
}

 

注意点
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换,反之不用管
4.转换的时候可能存在内存溢出,或者精度问题!

 

当数值较大的时候进行运算

要注意内存溢出

public class Demo05     {
   public static void main(String[] args) {
       //当操作比较大的数的时候,注意溢出问题
       //JDK新特性,数字之间可以用下划线分割
       int money = 10_0000_0000;
       int years = 20;
       int tota1=money* years;//输出为-1474836480,计算的时候溢出了
       long tota2 = money*years;//输出一样为-1474836480,默认是int,转换之前以及存在问题了

       long tota3=money*((long)years);//先把一个数转换成long
       System.out.println(tota1);
       System.out.println(tota2);
       System.out.println(tota3);

       //注意大小写区分
  }
}

 

 

变量

 

  • 变量是可以变化的量

  • java是一种强语言,每个变量都必须声明其类型

  • Java变量是程序中最基本的存储单位,其要素包括变量名,变量类型和作用域。

    注意事项

  • 每个变量都有用类型,类型可以是基本类型,也可以是引用类型。

  • 变量名必须是合法的标识符

  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

public class Deno06 {
  public static void main(String[] args) {
      int a=1;
      String name="jack";
      char x='X';
      double pi = 3.14;

  }
}

 

 

 

变量作用域

  • 类变量

  • 实例变量

  • 局部变量

public class Dome07 {

   //类变量 static
   static double salary=2500;





   //属性:变量

   //实例变量:从属于对象,如果不自行初始化,这个类型的额默认值 0 0.0
   //布尔值默认输出是 false
   //除了基本类型,其余的默认值都是null

   String name;
   int age;

   //main方法

   public static void main(String[] args) {

       //局部变量;必须声明和初始化值
     int i=10;
       System.out.println(i);

       //变量类型 变量名字= new Dome07()
       Dome07 dome07 = new Dome07();
       System.out.println(dome07.age);
       System.out.println(dome07.name);

       //类变量 static
       System.out.println(salary);
  }


   //其他方法
   public void add(){

  }
}

 

常量

  • 初始化后不能再改变的值,不会变动的值

  • 所谓常量可以理解为一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变。

final   //常量名=值
final  double PI = 3.14    //则 PI=3.14为常量

 

  • 常量名一般使用大写字符

 

 

变量的命名规范

  • 所有变量、方法、类名:见字知意

  • 类成员变量:首字母大小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母都大写

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man,GoodMan

  • 方法名:首字母小写和驼峰原则:run(),runRun()

 

运算符 运算符的优先级:()

  • 算术运算符:+,-,*,/,%,++,——

  • 赋值运算符 =

  • 关系运算符:> < >= <= == (等于) !=(不等于) instanceof

  • 逻辑运算符:&& || ! (与或非)

  • 位运算符: & | ^ ~ >> << >>> (了解!!!)

  • 条件运算符: ? :

  • 扩展赋值运算符:+= -= *= /=

 

 

 

学会++ --

package operator;

public class Demo03 {
   public static void main(String[] args) {


       int a = 3;
       int b = a++;//先把啊的值赋给b,然后a再进行自增,加一,
       //类似于在这里加一行代码   b=a, a=a+1;
       System.out.println(a);//所以这里a的值为4

       int c = ++a;// 这里是先a进行自己加一,然后在把加过的的值赋给了c,由于上面的a自己加过了一次,是4,现在再加一次就是5,所以a=c=5
       System.out.println(a);
       System.out.println(b);
       System.out.println(c);


       //幂函数的运算:2的3次方   很多运算,我们会使用工具类来操作!
       double pow = Math.pow(2, 3);
       System.out.println(pow);
  }

}

 

逻辑运算符

与或非

public class Demo04 {
   public static void main(String[] args) {
       //与(&&)   或(||)     非(!)
       boolean a=true;
       boolean b= false;

       System.out.println("a&&b:"+(a&&b));//逻辑(与)运算,两个都为真,结果才为true
       //当两个运算中的第一个为假的时候,后面的的运算着不会继续进行,称为短路运算
       System.out.println("a||b:"+(a||b));//逻辑(或)运算,两个变量中有一个为真,则结果才为true
       System.out.println("!(a&&b):"+!(a&&b));//如果为真,则变为假,如果为假,则变为真


       //短路运算
       int c=5;
       boolean d= (c<4)&&(c++<4);//当两个变量第一个出现false,就会结束运算,和后面的没有关系。
       System.out.println(d);
       System.out.println(c);


  }
}

 

位运算

位运算表示的是二进制里面的计算,如果不懂请看狂神说里的java零基础p29

 

条件运算符和拓展赋值运算符

 

拓展运算符

 

public class Demo05 {
   public static void main(String[] args) {
       int a=10;
       int b=20;

       a+=b;//a=a+b
       a-=b;//a=a-b
       a-=b;//a=a/b
       //...
       System.out.println(a);

       //字符串连接符 + ,

       System.out.println(""+a+b);//当一段字符串类型两侧,有一段String类型的字符串,就会把两个字符变成String类型,然后再连起来。
       System.out.println(a+b+"");//注意先后顺序
       

  }
}

 

 

三元运算符

 

x?y:z

如果x==true,则结果为y否则结果为z

 

public class Demo06 {
   public static void main(String[] args) {

       int score=50;
       String type = score >=60? "及格":"不及格";//必须掌握
       
       System.out.println(type);
  }
}
 

标签:String,int,day2,System,println,public,out
From: https://www.cnblogs.com/jack0725/p/16841365.html

相关文章