1、Java基础

Posted on 2021-05-16 14:09  斑马鱼丫  阅读(124)  评论(0)    收藏  举报

Java基础

阿里巴巴java开发手册

 

一、注释

  • 设置工程参数:

    1. file—Project Structure,将SDK调整为1.8,Language Level调整为8,并apply

    2. 新建一个Class,写出Hello,World!

    3. 单行注释 //单行注释

    4. 多行注释: /* */

    5. 文档注释: /** */

Sout

Psvm

 

二、标识符

  • 标识符是大小写敏感的

 

三、数据类型

  1. 基本类型(8个)

  2.  

 

四、数据类型转换(Demo05&06)

  • 从低至高:byte, short, char——int——long——float——double

  • 小数的优先级大于整数

  • 强制转换:(类型)变量名 高—低

  • 自动转换:低—高

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

package com.guang.base;

public class Demo05 {
   public static void main(String[] args) {
       int i=128;
       byte b=(byte)i;//内存溢出
       System.out.println(i);
       System.out.println(b);
       //强制转换:(类型)变量名   高—低
       //自动转换:低—高
       double c=i;
       System.out.println(c);
       /*
       1. 不能对布尔值进行转换
       2. 不能把对象类型转换为不相干的类型
       3. 把高容量转换为低容量时,强制转换
       4. 转换的时候可能存在内存溢出或者精度问题!
        */
       System.out.println("==================");
       System.out.println((int)23.7);//23
       System.out.println((int)-45.89f);//45
       System.out.println("==================");
       char e='a';
       int f=e+1;
       System.out.println(f);
       System.out.println((char) f);
  }
}

 

package com.guang.base;

public class Demo06 {
   public static void main(String[] args) {
       //操作比较大的数的时候注意溢出问题
       //JDK7新特性,数字间可以用下划线分割
       int money=1_000_000_000;
       int years=20;
       int total=money*years;//-1474836480,计算结果溢出
       long total2=money*years;//-1474836480,默认后面两个的乘积为int类型,计算之前已经存在问题了
       long total3=money*((long)years);//计算时先把一个数据类型转成long
       System.out.println(total);
       System.out.println(total2);
       System.out.println(total3);
  }
}

 

 

五、变量(demo08)

  1. 变量是程序中的最基础的存储单元,要素包括变量名,变量类型和作用域。

    1. 每个变量都有类型,包括基本类型和引用类型

    2. 变量名是合法的标识符

    3. 变量声明是一条完整的语句,每一个声明都需要用 ; 隔开

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

package com.guang.base;

public class Demo08 {
   //属性:变量

   //类变量 static   从属于类,可直接输出
   static double salary=2500;

   //第一:实例变量,从属于对象;如果不自行初始化,这个类型将输出默认值,0或0.0 u000
   //布尔值的输出默认值是false
   //除了基本类型(8ge),其余的类型输出默认值都是null
   String name;
   int age;

   //main方法
   public static void main(String[] args) {

       //第二,局部变量,在方法之间,必须声明和初始化值
       int i=10;
       System.out.println(i);

       //实例变量的使用
       //变量类型 变量名字 = new com.guang.base.Demo08()
       Demo08 demo08 = new Demo08();
       System.out.println(demo08.age);//demo08是变量的名字,所以是小写
       System.out.println(demo08.name);

       //类变量
       System.out.println(salary);
  }
   //其他方法
   public void add(){
  }
}

六、常量(demo09)

final 常量名=值;(常量名一般用大写字符)

package com.guang.base;

public class Demo09 {
   //修饰符static和final,不存在先后顺序
   static final double PI=3.14;
   public static void main(String[] args) {
       System.out.println(PI);
  }
}

 

七、运算符

  1. 算数运算符:+,-,*,/,%(取余数),++,--

    package com.guang.operator;

    public class Demo01 {
       public static void main(String[] args) {
           //二元运算符
           //ctrl+D 复制单前行到下一行
           int a=10;
           int b=20;
           int c=25;
           int d=25;
           System.out.println(a+b);
           System.out.println(a-b);
           System.out.println(a*b);
           System.out.println(a/(double)b);//int类型,除出来后去除小数取整,强转一个为double类型
      }
    }

    自增++、自减--

    package com.guang.operator;

    public class Demo04 {
       public static void main(String[] args) {
           //++   --   自增,自减,一元运算符
           int a=3;
           int b = a++;//执行完这代码后,先给b赋值,a再自增
           //a++   a=a+1;
           System.out.println(a);//4
           //a++   a=a+1;
           int c = ++a;//++a   a=a+1;//执行完这代码后,先自增,再给c赋值

           System.out.println(a);//5
           System.out.println(a);
           System.out.println(b);
           System.out.println(b);
           System.out.println(c);
           System.out.println(c);

           //幂运算 2^3;   很多运算会采用工具类来操作;
           double pow = Math.pow(2, 3);
           System.out.println(pow);
           System.out.println("______________");
               int e=2;
           System.out.println(e);
               int f=e++;//执行完这代码后,先给f赋值,e再自增//赋值给f的e是没有自增的,所以f=2;
           System.out.println(e);
               int g=++e;/*执行完这代码后,e先自增,再给g赋值//赋值给g的e是先进行自增的,
            e给f赋值后先自增,然后自增后的e在赋值给g前先自增,在赋值给g,相当于2+1+1=4;*/
           System.out.println(e);
           System.out.println(f);
           System.out.println(g);
           System.out.println("______________");
           int i=4;
           System.out.println(i);
           int h=++i;
           System.out.println(i);
      }
    }
  2. 赋值运算符:=

    package com.guang.operator;

    public class Demo02 {
       public static void main(String[] args) {
           long a=1234827834948L;
           int b=123;
           short c=10;
           byte d=8;
           System.out.println(a+b+c+d);//long
           System.out.println(b+c+d);//int
           System.out.println(c+d);//int
      }
    }
  3. 关系运算符:>,<,>=,<=,!=(不等于),instanceof

    package com.guang.operator;

    public class Demo03 {
       //关系运算符返回布尔值,正确,错误
       public static void main(String[] args) {
           int a=10;
           int b=20;
           int c=21;
           System.out.println(c%a);//c/a   1
           System.out.println(a>b);
           System.out.println(a<b);
           System.out.println(a==b);
           System.out.println(a!=b);
      }
    }
  4. 逻辑运算符:&&(与),||(或),!(非)

    package com.guang.operator;

    public class Demo05 {
       //逻辑运算符,或与非
       public static void main(String[] args) {
           boolean a=true;
           boolean b=false;
           System.out.println("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++<7);
           System.out.println(d);
           System.out.println(c);//c小于4,结果为假,故d未执行c++操作;
      }
    }
  5. 位运算符:&,|,^,~,>>(右移),<<(左移),>>>(右移且把高位等于0)

    1. A=0011 1100
      B=0000 1101
      
      A&B=0000 1100    与运算,都是1则为1,否则为0
      A|B=0011 1101     位运算,都是0则为0,否则为1
      A^B=0011 0001   异或,相同取0,不同取1
      ~B=1111 0010      取反,与上述相反,0则为1,1则为0
          
      <<   相当于*2
      >>   相当于/2
              000000   0
              000001   1
              000010   2
              000100   4=2<<1
              001000   8=2<<2
              010000   16=2<<3
  6. 条件运算符:?,:

    public class Demo08 {
        public static void main(String[] args) {
            //x?y:z   意思是如果x==ture,则结果为y,否则结果为z
            int score=80;
            String type=score<60?"不及格":"及格";
            System.out.println(type);//及格
        }
  7. 扩展赋值运算符:+=,-=,*=,/=

      int a=10;
            int b=20;
            a-=b;//a=a-b
            System.out.println(a);//-10
            a+=b;//a=a+b
            System.out.println(a);//10
    
            //字符串连接符   + ,   String类型“”
            System.out.println(""+a+b);//1020,空为字符串类型,后面加上加号表示把所有的当做字符串进行连接;
            System.out.println(a+b+"");//30,先进行加法,然后进行求和运算;
            System.out.println(""+(a+b));//30,先进行加法,然后进行求和运算;

 

八、包机制

  • 一般用公司域名倒置进行命名 如:com.baidu.www

  • package pkg1[.pkg2[.pkg3...]];

  • 包名在代码的最顶端,导入其他包用“import package pkg1[.pkg2[.pkg3...]]”,导入包的代码放在原始包名下面

 

九、Java.Doc

  1. Jdk帮助文档网址:https://docs.oracle.com/javase/8/docs/api/

  2. javadoc命令是用来生成自己API文档的

  3. 参数信息:

    1. @author作者名

    2. @version 版本号

    3. @since 指明需要最早使用的jdk版本

    4. @param参数名

    5. @return 返回值情况

    6. @throws 异常抛出情况

  4. 通过命令行生成JavaDoc文档:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

  5. 通过IDEA生成“JavaDoc文档”:Tools——Generate JavaDoc,选择文件夹及对应位置。

    package com.guang.base;
    /**
    * @author Guang
    * @version 1.0
    * @since 1.8
    */
    public class Doc {
       String name;

       /**
        * @author Guang
        * @param name
        * @return
        * @throws Exception
        */
       public String test(String name){
           return name;
      }
    }
  6.  

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3