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

    unit1 Java基础

    1.Java语言跨平台性:面向对象+跨平台

      JDK:程序开发工具包,开发 = JRE+使用的工具

      JRE:运行环境,运行 = JVM+核心类库

      JVM:虚拟机,翻译,jvm是各自的

      JDK》 JRE》 JVM

    2.JDK下载:JDK安装-》配置环境变量-》  

      javac就是编译:javac S.java     java就是系统程序:java S 

    3.命名:类HelloWorld         变量名:helloWorld            方法名:同变量名

      关键字:硬定义,完全小写,颜色花色    

      标志符:自定义,英文,数字,$,_       不可以数字开头                     

      常量:字符串,整数,浮点数,字符,布尔(true,false),空(null)

             String""中间可以为空也可以什么都没有,char‘ ’中间可以是空格但是不能什么都没,并且有且只能有一个 

        空常量不可以直接打印输出:sout(null);

     变量:int  a = 10;     先赋值(=)再使用,byte和short的右边数值不可超过左边数据类型范围,float=F,long=L,可以通过一个语句创建多个变量但是不推荐(int  a,b,c;      a=1;  b=2;  c=3;        int   q=1,b=2,c=3;  )

     数据类型:基本数据类型:(整数)byte1 -short2 -int4 -long8         (浮点) -float4 -double8            (字符) -char2        (布尔) -boolean1  

              引用数据类型:String         类,数组,接口

              数据类型转换:隐式转换,自动类型转换,低到高,数据范围从小到大:byte1 -short2 -int4 -long8 -float4 -double8  

                显式转换,强制类型转换,反之,数据范围从大到小:int   num = (int) 100L;// (强转的类型)long->int 

                   意外:数据溢出整数,精度损失小数;数据范围与字节数不一定相关

    ASCII编码:byte, short, int, 都可以数据运算的,但是运算时先提升成为int类型,再运算

          如果没有超过左侧范围,编译器补上强转           如果超过,编译器报错         编译器javac,编译器的常量优化         

    运算符:算术运算符(类型不统一时自动跟大,一般默认int类型。+, -, *,  /,  %(mod) 。++a,先加再用。a++,先用再加。)    

        赋值运算符(=,+=,-=,*=,/=,%=)其中隐含了强转,只可以用于变量  三元运算符(条件,二选一,if-else,A ?  a : b)

        比较运算符(==相等  =赋值 。结果一定是boolean类型,一步只判断一个,不可以连着写 1<X<3)  

        逻辑运算符(&与   ||或    !非   ,只有它是一元运算符    短路??)  

        优先级:增量减量》算术》比较》逻辑》赋值

        对于String字符串,+代表连接;自增自减只可以用在变量

    4.方法:主方法:public static void main(String args[]){ }  定义方法后,先调用再执行      方法不可以嵌套或者包含! 

        定义:public static void run(){}      调用:run();         执行:

     流程控制:顺序结构:

          选择结构:if(布尔类型)  if-else(可以和三元运算符替换)   if-else if-else if-else(执行n+1) switch(){case: break;....;default:break;}

               default就是收尾,最后一个break最好不要省略;case:XX后面不可以重复 ;switch(byte,short,char,int,String,enmu)      

               循环结构:for( 初始化表达式;布尔表达式;步进表达式 )         

                 while(条件表达式)      do-while(先执行再判断,二次执行)  

               foreach()?????      循环嵌套

                 break打断,continue跳过当前           死循环(Ctrl+C,强制停止)-------while(true){...}

                   for循环:for(初始化表达式;布尔表达式;步进表达式)                for(int i = 1; i <= 100; i ++){ ... }

                   while循环:初始化表达式;                   //初始化语句             int   i = 1;

                      while(布尔表达式){       //条件判断                 while(i <=100){

                          循环体;       //循环体                             ....

                          步进表达式;     //步进语句          i++;

                           }  //类似于for循环                                                          }

                 do-while循环:初始化表达式;                                    int   i = 1;

                        do {                     do {

                          循环体;                                                               ....

                          步进表达式;                i ++;

                        } while (条件判断);            } while (i <=100) ;

                 三者区别:从未满足时,for,while,0次       do-while,至少1次

                 使用:次数确定用for     反之用while

    5.集成开发环境IDE介绍,IntelliJ IDEA:Module--src---package---class

        psvm  sout  Alt+F4=Run  Alt+Enter=mix  Ctrl+/=单行注释

    6.方法回顾详解:例子:

    * 三要素:
    * 返回值类型:不用返回值,用void就行
    * 方法名称:sum
    * 参数列表:打印的次数,用int count

      有参无参:(String args[])  ()

      有返回值无返回值:有的话有return无void,反之。。无参只能单独调用就是void

      调用:单独调用:方法名称(参数);void只能进行单独调用

            打印调用:sout(方法名称(参数));

         赋值调用:数据类型   变量名称 = 方法名称(参数);

           找到方法----参数传递----执行方法体-----带着返回值回到方法的调用处(return)

    7.方法重载:Overlord,功能类似的方法,可以进行同名方法,参数个数/或者类型/或者次序/不同

    8.数组:Array,引用数据类型,类型统一,长度不能随意改变

      数组初始化:动态给长度,静态给内容,且动态初始化有自动的默认值

      创建数组:int[] arrayA = new int[3]; //动态定义  int[] arrayB =  new int[] {1,2,3,4}; //静态定义===int[] arrayC = {1,2,3,4};

      静态初始化:(array)直接打印数组名称,得到的是数组内存 的hash值    (array[3])数组索引值从0开始,打印第四个

           动态初始化:其中元素将会自动拥有一个默认值

      内存划分:栈stack  堆heap  方法区method

      问题:数组索引越界异常:ArrayIndexOutOfBoundsException

           空指针异常:NullPointerException,原因是忘了new

      长度:A.length      数组一旦创建,程序运行期间,长度不可以改变

      遍历:for循环遍历数组      for(..)   {    sout (array[i]);    }        快捷键:array.fori

      最值:max     min

     元素反转:交换
    作为方法参数传递:printArray(int[] array){}
    作为方法返回值:return array;

    9. 补充:

    进制转换,,,,,,,,存储单元(1Byte==8bit)

    命令提示符cmd:cd ..返回上一级    cd 返回根   dir查看文件夹    cls清空   exit退出

    打开文件拓展名,,,,,,,,,方便修改

  • 相关阅读:
    带横线圆圈标题
    锚点点击导航 跳转到相应位置,样式随之变化
    导航随滚动改变样式
    for循环中嵌套函数,执行顺序和结果该如何理解?
    mui 记录
    获取页面所有a标签href
    cookie记录横向滚动条位置
    Istio全景监控与拓扑
    Istio 流量治理功能原理与实战
    Cloud Native Weekly | KubeCon首登中国,华为云亮相KubeCon 2018,微软云服务又罢工
  • 原文地址:https://www.cnblogs.com/only666/p/12274521.html
Copyright © 2011-2022 走看看