首页 > 编程语言 > 详细

java基础(4)

时间:2021-01-17 10:19:13      阅读:35      评论:0      收藏:0      [点我收藏+]

数据类型转换

  1. 低 -------------------------------------------------> 高(字节大小,容量)

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

小数优先级大于整数

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

  1. public class Demo03 {
       public static void main(String[] args) {
           int i = 128;
           byte b = (byte)i;   //内存溢出
    ?
           //强制转换     (类型)变量名   高——低
           //自动转换     低——高
    ?
           System.out.println(i);
           System.out.println(b);
    ?
           /*
           注意:不能对布尔值进行转换;
                不能把对象类型i转换为不相关的类型;
                在把高容量转换为低容量时,强制转换;
                转换的时候可能存在内存溢出或精度问题;
            */
    ?
           System.out.println("===========================");
           System.out.println((int)23.7);         //结果23
           System.out.println((int)-45.89f);      //结果45
    ?
           System.out.println("============================");
           char c = ‘a‘;
           int d = c+1;
           System.out.println(d);                   //98
           System.out.println((char)d);             //b
    ?
           System.out.println("=============================");
           int money = 10_0000_0000;
           int year = 20;
           int total = money*year;                  //-1474836480,计算的时候内存溢出了
           long total1 = money*year;                //-1474836480,默认是int,先用int计算出结果,转换之成long之前已经溢出了
           long total2 = money*((long)year);        //200000000000,先把一个数转换为long,改精度   (long一般用L)
           System.out.println(money);               //1000000000
           System.out.println(total);
           System.out.println(total2);
      }
    }
    ?
  2. 变量:

    可以变化的量,操作内存中的空间。变量代表(内存中的)一块空间,空间的位置是固定的,但这块空间中按变量名分成几块 不一定;

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

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

数据类型 变量名 = 值;

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

变量名必须是合法的标识符。 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

public class Demo04 {
   public static void main(String[] args) {
       int a = 1;
       String name = "qinjiang";
  }
}

 

  1. 变量作用域:类变量 实例变量 局部变量

    public class Demo05 {
       //类变量 static,从属于这个类,随着这个类一起出来,一起消失;
       static double salary = 2500;
       
       //属性:变量
       
       //实例变量:在类里面,从属于对象,通过这个类,才能使用它。如果不自行初始化,默认值:数值类型0 0.0 字符串变量u0000
       //布尔值:默认是false;
       //除了基本类型,其余的默认值都是null;
       String name;
       int age;
       
       //方法块:作用域高,在方法内有效。
       static{
           
      }
       
       //main方法(主程序方法)
       public static void main(String[] args) {
           
           //局部变量:生命周期在这个方法内,使用时必须声明和初始化值,只在这个方法内有效。
           int i = 10;
           System.out.println(i);
           
           //变量类型(自定义的变量类型【引用类型】) 变量名字(对象)   = new Demo05();(相当于把这个类拿到了)
           Demo05 demo05 = new Demo05();
           System.out.println(demo05.age);
           System.out.println(demo05.name);
           
           //类变量 static
           System.out.println(salary);
      }
       
       //其他方法:
       public void add(){
           System.out.println(i);
      }
    }
    ?

5. 常量:初始化后不能再改变的值,不会变动的值。 final 常量名 = 值;

public class Demo06 {
?
   //修饰符不区分先后顺序,变量类型前都是修饰符,常量名一般用大写字符,static是静态常量。
   static final double PI = 3.14;
?
   public static void main(String[] args) {
       System.out.println(PI);   //引用PI
  }
}
?
  1. 所有变量、方法名、类名:见名如意

    类成员变量: 首字母小写和驼峰原则:monthSalary

    除了第一个单词以外,后面的单词首字母大写

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

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

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

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

  1. 运算符:算数运算符:+,-,*,/,%,++,--;

    赋值运算符:=

关系运算符:>,<,>=,<=,==,!= instanceof

逻辑运算符:&&,||,!

位运算符:&,|,^,~,>>,<<,>>>

条件运算符:? :

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

package operator;            //代表当前的包(文件夹)
?
public class Demo01 {
   public static void main(String[] args) {
       int a = 10;
       int b = 20;
       int c = 31;
       int d = 40;
?
       System.out.println(a+b);
       System.out.println(a-b);
       System.out.println(a*b);
       System.out.println(a/(double)b);
?
       long e = 123123123123123L;
       int f = 123;
       short g = 10;
       byte h = 8;
       double i = 1.5;
?
       System.out.println(e+f+g+h);    //有long类型,输出结果为long类型
       System.out.println(f+g+h);      //其他均为int类型
       System.out.println(g+h);        //其他均为int类型(哪怕是小的类型,不管有没有int类型,结果也是int类型)
       System.out.println(g+h+i);      //有double类型,输出结果为double类型
       System.out.println(f+g+h+i);
?
       //关系运算符
       System.out.println(c%a);        // 1 c/a = 3...1
       System.out.println(a>b);        //false
       System.out.println(a<b);        //true
       System.out.println(a==b);
       System.out.println(a!=b);
  }
}
?
  1. ++、--

package operator;
?
public class Demo02 {
   public static void main(String[] args) {
       //++ -- 自增自减
       int a = 3;
       int b = a++;    //a++   a = a + 1,a先赋值给b,再自增;   b=3
       //a++   a = a + 1
       System.out.println(a);         // a=4
       //a++   a = a + 1
       int c = ++a;    //++a   a = a + 1,a先自增,再赋值给c;   c=5
?
       System.out.println(a);         // a=5
       System.out.println(b);
       System.out.println(c);
       
       //幂运算:2^3 2*2*2 = 8     很多运算,我们会使用一些工具类操作
       double pow = Math.pow(2, 3);
       System.out.println(pow);       //pow = 9
       
  }
}
?
  1. 逻辑运算符:&&,||,!

    package operator;
    ?
    public class Demo03 {
       public static void main(String[] args) {
           //and(全1出1)   or(有1出1)     非(取反)
           boolean a = true;
           boolean b = false;
    ?
           System.out.println("a && b:"+(a&&b));      //用加号把字符串"a && b:"(实际是a && b)和结果(a&&b)[加括号优先计算]拼接到一起
           System.out.println("a || b:"+(a||b));
           System.out.println("!(a && b):"+!(a&&b));
    ?
           //短路运算
           int c = 5;
           boolean d = (c<4)&&(c++<4);    //判断前一项为假,不会执行后面的代码,直接返回false,所以后面的c++没有执行,c仍未5.
           System.out.println(d);    //false
           System.out.println(c);    //c=5
      }
    }
    ?
  1. 位运算符:&,|,^,~,>>,<<,>>>

    package operator;
    ?
    public class Demo {
       public static void main(String[] args) {
           /*
           A = 0011 1100
           B = 0000 1101
    ?
           A&B = 0000 1100
           A/B
           A^B   异或(不同为1)
           ~B   非
    ?
            2*8 = 16   2*2*2*2 = 16 位运算 速度最快
            <<左移   *2
            >>右移   /2
    ?
            0000 0000   0
            0000 0001   1
            0000 0010   2
            0000 0100   4
            0000 1000   8
            0001 0000   16
            */
           System.out.println(2<<3);    //结果是16
    ?
           //a+=b;   a=a+b
           //a-=b;   a=a-b
    ?
           //字符串连接符 +   String
           // 在加号运算符两侧,只要出现了String类型,就会把另外一个操作数都转换成String,再进行连接。
           int a = 10;
           int b = 20;
    ?
           System.out.println(""+a+b);     //结果是1020
           System.out.println(a+b);        //结果是30
           System.out.println(a+b+"");     //结果是30,前面已经运算完了,优先级问题
    ?
           //条件运算符
           //x ? y : z
           //如果x==true,则结果为y,否则结果为z;
           int score = 80;
           String type = score <60 ?"不及格":"及格";    //写上String type把(score <60 ?"不及格":"及格")的结果接收一下,type这个类型
           System.out.println(type);
      }
    }
    优先级():百度上查阅
  1. 包机制:一般利用公司域名倒置作为包名;com.baidu.www import

按住Ctrl+鼠标右键可以跳转到类界面,对应的jar包;

导入对应的包,才能用包下面的类,import com.zhz.base.Demo02;导入这个路径的类Demo02;

import com.zhz.base.*;导入这个包内所有的类,通配符(阿里巴巴开发手册);

  1. jdk帮助文档:Oracle官方 核心8,在线的API帮助文档

  2. javadoc命令是用来生成自己API文档的 参数信息 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @return 返回值情况 @throws 异常抛出情况

    使用cmd指令生成doc文档:javadoc -encoding UTF-8 -charset UTF-8 文件名.java

  3. 学会使用IDEA生产javadoc文档,百度搜索

java基础(4)

原文:https://www.cnblogs.com/zhzred/p/14288028.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!