JAVASE-----JAVA语言基础(个人知识点总结回顾)

来源:互联网 发布:mac os vmware 镜像 编辑:程序博客网 时间:2024/06/02 10:23

1.JAVA由两个重要部分组成 ,一个是JDK(java  development kit)开发环境,和JRE(java running environment)运行环境。

其中,JDK是核心,它包括了JAVA运行环境(JRE)、java基本类库和JAVA工具。 我们开发人员只安装JDK就可以。

2.关键字 :顾名思义是由系统定义的单词,有特殊意义,我们不能随意使用,例如用关键字做方法名,变量名等行为都是错误的。 关键字的特点是:字母全部小写。举例:常见的关键字太多了,如:public  static  void  main  class  interface   implents等等。我们看到的String  或者System大写了 是因为此时他们是作为类名。

3标识符:用来定义变量名,方法名,常量名的规则。组成是:26个大小写字母,数字,以及下划线_和$。 其中,要注意的是开头不能是数字,且严格区分大小写。

4命名规范(见名思意原则)

                包名:全部小写。   一般情况下是域名的反写,如:com.baidu    包分为一级包和二级包。例子中:com是一级包,com.baidu是二级包。       

                类名和接口名:单词的首字母大写。  举例:Demo   HelloWorld   Collection

               方法名:从第二个单词开始,单词首字母大写。   main     sayHello

               变量名:全部小写。 x ,i ,name    

               常量名:全部大写,多单词组成时单词之间用下划线_连接。 MAX_VAULE      123   分为字面值常量和自定义常量(用public  final修饰的值)

5:注释

        单行注释   //文字说明                 

       多行注释   /*文字说明*/

       文档注释/**文档*/               文档注释会被java的bin目录下的javac解析成HTML文件,也就是说明书,一般包括①version  作者②version 1.0  版本 ,版本目前只有1.0.

6      变量的定义:内存中的一小块区域,指定范围内可以改变的量。 格式: 变量类型 变量名 = 初始化的值。      数据类型分为基本数据(4类八种)和引用数据类型(类、接口、数组)。其中定义长整型要加L,如1555L;定义浮点型要加F,如58.5F,原因是整数默认是int类型,小数默认是double类型。

7运算符 :算数运算符(+ - * / %)逻辑运算符(& | && || ^)位运算符(& | ^ ~ <<  >>  >>>)、赋值运算符(=)

                  算数运算符(+ - * / %):用于基本的运算   其中/取整  %取余数。  值得注意的是:整数相除一定是整数,要想获得小数必须有一方是小数。 

                       隐士转换(小——大):基本数据类型在进行运算时, 小数据类型会自动转换为大数据类型。

                       强制转换(大——小):基本数据类型在进行运算时,因为要求结果是小数据类型,索引需要强制转换。byte b = (byte)130;因为130默认是int类型的十进制数据,要想得到b的值,需要知道 byte范围是(-127-130),因此需要把130的二进制数据进行截取(因为byte是1个字节),然后进行原反补的操作(符号位不变,数据位改变)。

                  逻辑运算符(& | && || ^):&逻辑与,两边值都是true,结果才是true;&&短路与也是两边都是true结果才是true,但是不同点是:如果短路与&&左边的值是false,右边不进行判断,直接是false,而普通与&两边都会执行。 |普通或 ||短路或同上。     ^逻辑异或:相同为假,不同为真。  

                位运算符(& | ^ ~ <<  >>  >>>):针对的是二进制数据,位运算的时候先将运算符两边数转为二进制数,对二进制每一位进行运算,然后 依次是 按位与,按位或,按位异或(对一个数字抑或两次数值不变),有符号左移(补0),有符号右移(补0),无符号右移。      用法:2--8效率做法:2>>2      16--4  16<<2

8 条件表达式       表达式 ?表达式1:表达式2; 其中?前的表达式结果必须是boolean类型,true——表达式1  false——表达式2。

9 程序流程控制分为三大块语句:判断语句   选择语句  循环语句

                                                          判断与选择语句  if语句和switch语句   

                                                                             if语句分为: if(条件表达式){语句体;} 解释:条件表达式值是boolean类型 如果是true执行语句体,false不执行;

                                                                                                    if(条件表达式){语句体1;}else{语句体2;}同上但是false执行语句体2;

                                                                                                    if(条件表达式){语句体1;}else if(条件表达式2){语句体2;}。。。。。。else{执行语句;}

                                                                                                    其中需要知道的 单独else后面不能跟条件表达式。

                                                                              switch语句:switch(条件表达式){case1:语句体1;break;case2:语句体2;break;case3:语句体3;                                                                                                                                           break;。。。。。。defaule:语句体3;break;}注意:除了最后一个break,其他break必须有!原因:循环语句结                                                                                                       束标志两种:①碰到break;②运行到最后碰到}。

                                                           循环语句:for循环   格式 for(初始化值;条件语句;控制语句;){循环体} 具体 for(int x =1①;x<10②⑤;x++④){System.out.println(x);③}

                                                                               while循环  格式    初始化值;while(条件语句){循环体;控制语句;} 具体int x= 1①; while(x<10②⑤)                                                                                                                                                                                                                                                                           {System.out.println(x);③x++;④}

                                                                               do while循环    格式 初始化值;do{System.out.println(x);x++}(条件语句) 注意:do while 语句 循环体肯定执行一次

for循环 while循环用哪一个  ?  知道循环次数用哪一个都可以 ,不知道循环次数用while。

 例子for(int i=0;i<100;i++){......}就可以写成int i=0;while(i<100){i++;},不知道循环次数只能用while,如while(x>0){......}

10 函数是类中有特定功能的一小段程序。    格式:修饰符  返回值类型 函数名(形参类型 形参1,形参类型,形参2){执行语句;return返回值;}

解释:        修饰符 如public  static     返回值类型  结果类型       函数名:方法名,方便调用         形参:接受 实际参数   返回值:程序结果。

11方法的调用     

①调用本类中方法           

静态方法(static)   可以在本类中其他方法直接调用   

public class HelloWord {


    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str="HelloWord!";
        int a=0;
        int b=a+1;
        int result=0;
        
        for(int i=0;i<20;i++)
        {
            //Add方法调用
            result= Add(a,b);            
            
            System.out.println(str+" "+ result);
            
            a+=i;
            
        }
    }
    /**
     * 被调用方法,这里使用了static声明为静态方法
     * @param x 
     * @param y
     * @return
     */
    private static int Add(int x,int y)
    {
        
        return x+y;
    }
}

非静态方法    通过类的实例化调用

public class HelloWord {


    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str="HelloWord!";
        int a=0;
        int b=a+1;
        int result=0;
        
        for(int i=0;i<20;i++)
        {
            //Add方法调用
            //类的实例化
            HelloWord helloword=new HelloWord();
            
            //通过实例化的类进行Add方法调用
            result=helloword.Add(a, b);                        
            
            System.out.println(str+" "+ result);
            
            a+=i;
            
        }
    }
    /**
     * 被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用
     * @param x 
     * @param y
     * @return
     */
    private int Add(int x,int y)
    {
        
        return x+y;
    }
}

②调用外部类的方法 通过类的实例化进行调用

外部类

public class Test {
    /**
     * 被调用方法Add
     * @param x 
     * @param y
     * @return
     */
    public int Add(int x,int y)
    {
        
        return x+y;
    }
    
    /**
     * 被调用方法Sub
     * @param x 
     * @param y
     * @return
     */
    public static int Sub(int x,int y)
    {
        
        return x-y;
    }
}

调用

public class HelloWord {


    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str="HelloWord!";
        int a=5;
        int b=a+1;
        int result=0;
        
        for(int i=0;i<20;i++)
        {
            //Add方法调用
            //类的实例化
            Test test=new Test();
            
            //通过实例化的类进行Add方法调用
            result=test.Add(a, b);                        
            
            System.out.println(str+" "+ result);
            
            result=test.Sub(b, 1);                        
            
            System.out.println(str+" "+ result);
            
            a+=i;
            
        }
    }
    
}

12数组与集合

  数组:是内存储一系列相同类型元素的容器,好处是可以根据索引调用。

数组的遍历:应该都知道。

 数组与集合的区别?  

                                    数组:长度固定。     可存储基本数据或者引用数据。  存储的数据类型必须一致。

                                     集合:长度可变。    只能存储引用数据。       存储的数据类型可以不一致。

集合:长度可以改变的能存储不能类型数据的容器。

Collection(接口)分为list(接口)集合和set(接口)集合。   list存取有序,数据可重复。set存取无序,数据不可重复。

        ArrayList类  底层是数组  查询快  增删慢  线程不安全

list   Vector类  底层是数组   查询快 增删慢  线程安全   使用了synchronized方法    stack类是Vector的子类

        LinkedList  底层是链表  增删快 查询慢  线程不安全

        HashSet    底层是哈希表    重写了HashCode()方法和equals()方法 所以数据不能重复。

set                                                自然比较器  需实现Comparable接口   会调用Compare to 方法   升序排列 比较的前提是两个数据的类型是相同的   无参构造

          TreeSet   底层是二叉树    

                                                      比较器接口 Comparater接口          带参构造      

13Map集合  

  map(接口)是键值对集合,是双列的。其中键是唯一的,值可以重复。

          HashMap     线程不安全的,效率高   允许出现null键和null值

map                                           

          HashTable  线程安全的  效率低   不允许出现null键和null值

14.java基础算法 会单独开一贴  因为比较重要

15常用的数据结构    ArrayList  Vector   LinkedList   HashSet TreeSet  HashMap  HashTable    底层是线性表 链表  哈希表



0 0
原创粉丝点击