zoukankan      html  css  js  c++  java
  • Day4 Java基础

    Java 基础

    1.注释、标识符、关键字

    • 注释

      • 平时我们编写代码,在代码量少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
      • 注释并不会被执行,是给我们写代码的人看的
      • 书写注释是一个非常好的习惯

      java中的注释有三种

      • 单行注释 //

      • 多行注释 /* */

      • 文档注释 /** */

        public class HelloWorld {
            public static void main(String[] args) {
                // 单行注释
        
        
        
                /*
                多行注释
                多行注释
                 */
        
        
                /**
                 * @author  文档注释
                 */
                System.out.println("Hello,World");
            }
        }
        
    • 标识符

      java所有的组成部分都需要名字。类名、变量名移机方法名都被称为标识符。

      • 所有的标识符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始
      • 首字母之后可以是A-Z或者a-z)、美元符($)、或者下划线(_)或数字的任何字符组和
      • 不能使用关键字作为变量名或方法名
      • 标识符是大小写敏感
      • 合法标识符举例:age、 $salary、_value 、 __1_value
      • 非法标识符举例:123age 、-salary、#abc
      • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
    • 关键字

      abstract assert boolean break byte

      case catch char class const

      continue default do double else

      enum extends final finally float

      for goto if implements import

      instanceof int interface long native

      new package private protected public

      return strictfp short static super

      switch synchronized this throw throws

      transient try void volatile while

    2.数据类型

    • 强类型语言

      • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
    • 弱类型语言

      • VB JavaScript

      java的数据类型分为两大类

      • 基本类型(primitive type)

      • 引用类型 (reference type)

        public class Demo01 {
            public static void main(String[] args) {
                //八大基本数据类型
        
                //整数
                byte num1=-122;
                short num2=129;
                int num3=34444; //最常用类型
                long num4=300000000000L;// long类型要在数字后面加个L
        
                // 小数;浮点数
                float num5=50.1f;   // float类型要在数字后面加个f
                double num6=3.1415926533333;
        
                //字符
                char name='A';
        
                //布尔值:true,false
                boolean flag=true;
                //boolean flag=false;
                
            }
        }
        

        整数拓展及面试题讲解

        public class Demo03 {
            public static void main(String[] args) {
                //整数拓展 :进制  二进制0b   十进制   八进制0    十六进制0x
        
                int i0=10;
                int i1=010;  //八进制0
                int i2=0x10;  //十六进制0x   0~9  A~F  16
        
                System.out.println(i0);  //10
                System.out.println(i1);  //8
                System.out.println(i2);   //16
        
                //浮点数拓展?   银行业务怎么表示?钱
                // BigDecimal
        
                //float   有限 离散  舍入误差  大约 接近但不等于
                //double
                //最好完全使用浮点数进行比较
        
                float f=0.1f;
                double d=1.0/10;
                System.out.println(f==d);//false
        
        
                float d1=2223333333333333333333f;
                float d2=d1+1;
        
                System.out.println(d1==d2);//true
        
                //字符串拓展
                char c1='a';
                char c2='中';
                char c3='u0061';
        
                System.out.println(c1);// a
                System.out.println((int)c1);//97
                System.out.println(c2);// 中
                System.out.println((int)c2); // 20013
                System.out.println(c3);   //a
        
                //所有的字符本质还是数字
                //编码  Unicode 2字节   0-65536
                // U0000-UFFFF
        
        
                //转义字符
                //   	     制表符
                //   
          换行
                //   ............
        
                System.out.println("Hello
        world");
        
        
                String sa=new String("hello world");
                String sb=new String("hello world");
                System.out.println(sa==sb);//false
        
                String sc="hello world";
                String sd="hello world";
                System.out.println(sc==sd);//true
        
                //布尔值拓展
                boolean flag=true;
                if (flag==true){}   //新手
                if (flag){}  //老手
        
            }
        }
        

    3.类型转换

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

      由低到高

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

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

    • 强制类型转换

      由高到低需要强制转换

    • 自动类型转换

      低到高就会自动转换

      注意点

      1. 不能对布尔值进行转换

      2. 不能把对象类型转换位不相干的类型

      3. 在把高容量转换位低容量的时候,强制转换

      4. 转换的时候可能存在内容溢出,或者精度问题

        public class Demo02 {
            public static void main(String[] args) {
                //操作比较大的数的时候,注意溢出问题
                //JDK7新特性,数字之间可以用下划线分割
                int money=10_0000_0000;
                int year =20;
                int total=money*year;
                System.out.println(total);//-1474836480 计算的时候溢出了
                long total2=money*year;
                System.out.println(total2);//先用int类型计算后在转换还是溢出
                long total3=money*((long)year);//先将一个数值转换位long
                System.out.println(total3); //20000000000
        
            }
        }
        

    4.变量、常量

    变量

    • 变量:可以变化的量

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

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

      type varName [=value] [{,varName[=value]}];

      注意事项

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

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

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

        变量的作用域

        • 类变量 在类里面含有static关键词

        • 实例变量 在类里面方法外面,没有static关键词

        • 局部变量 在方法里面

          public class Demo04 {
              //属性:变量
          
              //类变量 static
              static  double salary=2500;
          
              //实例变量:从属于对象;如果不自行初始化,默认值
              // 布尔值默认是false
              String name;
              int age;
          
              //main方法
              public static void main(String[] args) {
                  //局部变量:必须声明和初始化
                  int i=10;
                  System.out.println(i);
          
                  Demo04 demo04 = new Demo04();
                  System.out.println(demo04.age); //0
                  System.out.println(demo04.name);// null
          
                  //类变量不需要在new 一个对象直接使用
                  System.out.println(salary);//2500
          
              }
          
              //其他方法
              public void add(){
          
              }
          }
          
          
          

    常量

    • 常量(constant):初始化(initialize)后不能再改变值!不会变动的值。

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

      final 常量名=值;

      final double PI=3.14;

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

    5.运算符

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

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

      a=10; //把10赋值给a

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

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

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

      public class Demo05 {
      
          public static void main(String[] args) {
              //位运算
      
              /*
              A=0011 1100
              B=0000 1101
              A&B=0000 1100      同时为1则为1
              A|B =0011 1101      一个为1则为1
              A^B=0011 0001        A异或B     相同为0 不相同为1
              ~B =1111 0010
      
              2*8=16    2*2*2*2=16
              <<  左移   *2
              >>  右移   /2
              使用位运算 效率极高!!!
               */
              //2 左移3位
              System.out.println(2<<3); // 16
      
              System.out.println(16>>3);//2
      
          }
      
      }
      
    • 条件运算符 ?:

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

      public class Demo02 {
      
          public static void main(String[] args) {
              int a=10;
              int b=20;
      
              a+=b;//a=a+b
      
              System.out.println(a);
      
      
              //字符串连接符  +  , String
              System.out.println(""+a+b);//1020
              System.out.println(a+b+"");//30
          }
      }
      

    6.包机制、JavaDOC

    包机制

    • 为了更好地组织类,Java提供了包机制,用于区别类名空间

    • 包语言的语法格式为:

      package pk1;

    • 一般利用公司域名倒置作为包名;

      www.baidu.com 建包com.baidu.www

    • 为了能够使用某一个包的成员,我们需要在java程序中明确导入该包。使用import

      import pk1;

    JavaDOC

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

    javadoc -encoding UTF-8 -charset UTF-8 Doc.java

    package base;
    
    /**
     * @author  zhaoxz
     * @version  1.0
     * @since 1.8
     */
    
    public class Doc {
    
        String name;
    
    
        /**
         *
         * @param name
         * @return
         * @throws Exception
         */
        public  String test(String name) throws Exception{
            return name;
        }
    }
    
    • 参数信息

      • @author 作者名
      • @version 版本号
      • @since 指明需要最早使用的jdk版本
      • @param 参数名
      • @return 返回值情况
      • @throws 异常抛出情况
  • 相关阅读:
    [已读]精通AngularJS
    [在读]HTML5数据推送应用开发
    [未读]深入浅出node.js
    [已读]用Angularjs开发下一代web应用
    [在读]Secrets of the javascript Ninja
    Element ui select同时获取value和label的值
    Element ui tree树形控件获取父节点id
    Element ui tree结合Vue使用遇到的一些问题(一)
    vue数组检测更新问题
    css3实现流星坠落效果
  • 原文地址:https://www.cnblogs.com/zhaojiaxiaomei1/p/15252192.html
Copyright © 2011-2022 走看看