Java基础知识总结

Java现在学习到了数据库连接这里,基本上又是一个新的知识了,所以趁着端午节把前面的知识总结了下,里面肯定是有些不足的,比如说String类的使用和它的增强StringBuffer,这里知识提到了一些简单的知识点,更深入的话就需要网上翻阅资料了。

一.基础知识

1. 计算机程序:

  为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合 

2. Java相关技术:

  JavaSE,JavaEE

3. Java可开发的程序:

  1) 开发桌面应用程序   

  2) 开发面向Internet的应用程序

4. 开发Java程序的步骤:

  编写源程序——编译源程序——运行

5. Java程序的基本框架:

  1) 外层:关键字,类名(与文件名一致)

  2) Java入口程序: main方法四要素(public static void main(String[ ] args){}, main方法是Java程序执行的入口点)。

  3) 编写代码: 从控制台输入信息。

      Eg: public class Hello{
            public static void main(String[] args){
                   System.out.println("Hello World!");
           }
     }

6. Java的注释类型:

  1) 多行注释以“/*”开头,以“*/”结尾

  2) 单行注释以 // 开始,以行末结束。

7. 变量的定义:

  变量一个数据存储空间的表示 , 不同数据存入具有不同

  内存地址的空间,相互独立。

8. Java定义的常用数据类型:

  数据类型可分为数值型和非数值型,数值型又可分为整型和非整形。

  非数值型:char,String…

  整型:int…..

  非整形:double….

9. 发生自动类型转换的条件:

  1) 规则1:如果一个操作数为double型,则整个表达式可提升为double型

  2) 规则2:满足自动类型转换的条件

    A.    两种类型要兼容:

        Eg. 数值类型(整型和浮点型)互相兼容

    B.    目标类型大于源类型:

        Eg. double 型大于 int 型

10. 强制类型转换:

   (类型名)表达式

11. 变量命名规则:

  1) 首字母为:字母,下划线’_’,‘$’ 符号

  2) 其余部分:任意多的:数字,字母,下划线’_’,‘$’ 符号

12. Scanner对象的hasNextInt()方法:

  Scanner对象的hasNextInt()方法,可以判断用户从键盘输入的字符是否是合法的数字

      Eg. Scanner input = new Scanner(System.in);

    if (input.hasNextInt()) {      // 如果是数字,则…,如果不是则…

      ......
        } else {

             System.out.println("请输入正确的数字!");

        }

13. 程序调试:

  1) 目的: 找出缺陷原因,修正缺陷.

  2) 主要方法: 设置断点、单步执行、观察变量。

14. 基本数据类型和引用数据类型在内存分配上的区别:

  Java的内存分配上,主要分4个块:

  一块是用来装代码的,就是编译的东西。
  一块是用来装静态变量的,例如用static关键字的变量,例如字符串常量。
  一块是stack,也就是栈,是用来装变量和引用类型的!但区别在于,装了变量以后,变量上是有值的,而引用类型本身在stack上是没有值的。
  一块是heap,也就是堆!堆可以一句话概括,装new出来的东西!

  所以综上所述,基本数据类型都在stack中,而引用类型,变量是放在stack中,真正有内容的东西放在heap中,也就是当new了一个新的引用类型,他就会放在堆中,同时栈中的引用类型变量会指向堆中你new出来的东西。

15. 字符串比较:

  compareTo( ) :不忽略大小写

  compareToIgnoreCase( ):忽略大小写

16. 数组排序输出

  Import java.util.Arrays;  //包路径   

  Arrays.sort(数组名);      //使用方法

17. 随机数

  import java.util.Random;         //包路径

  Random rd=new Random();//随机数生成器
  int j=(int)(rd.nextDouble()*7)+4;

  //rd.nextDouble()随机返回0-1之间的数 不包括1
  // *7  随机产生0-7之间的数 不包括7
  //(int)转换为整型 则随机产生0-6之间的整数
  //+4 随机产生4,5,6,7,8,9,10

二.面向对象(一)

1. 对象

  1) 含义:用来描述客观事物的一个实体,由一组属性和方法构成

  2) 属性:对象具有的各种特征,每个对象的每个属性都有特定的值。

  3) 方法:对象执行的操作

2. 封装

  1) 含义:对象同时具有属性和方法两项特性。对象的属性和方法通常被封装在一起,共同体现事物的特性, 二者相辅相承,不能分割。

  2) 封装作用:

    a) 提高代码的重用性

    b) 不用关心类的具体实现

    c) 面向对象的三大基本特征之一

    d) 具有安全性

    e) 方便修改类的内部实现,无须修改调用该类的代码

    f)  可以对成员变量进行更精确的控制

3. 类

  1) 含义:具有相同属性和方法的一组对象的集合

  2) 类与对象的区别:类是对象的类型,类是模子,确定对象将会拥有的特征(属性)和行为(方法)。

  3) 类与对象的关系:类是抽象的概念,而对象是一个能够看得到、摸得着的具体实体

4. Java 是面向对象的语言

  1) 所有Java程序都以类class为组织单元

  2) 关键字class定义自定义的数据类型

5. 面向对象的优点(OO)

  1) 与人类的思维习惯一致

  2) 信息隐藏,提高了程序的可维护性和安全性

  3) 提高了程序的可重用性

6. 创建类的对象:

  1) 创建对象(实例化对象)

    类名 对象名 = new 类名();

  2) 引用对象成员

    引用类的属性:对象名.属性

    引用类的方法:对象名.方法名()

7. 类的方法:

  1) 创建:方法的名称,方法的返回值类型,方法的主体

  2) 调用:

      本类中直接使用:方法名();

      其他类中,new出对象后使用:对象名.方法名();

8. 成员变量和局部变量:

  1) 作用域不同:

     局部变量的作用域仅限于定义它的方法

     成员变量的作用域在整个类内部都是可见的

  2) 初始值不同:

     Java会给成员变量一个初始值

     Java不会给局部变量赋予初始值

  3) 在同一个方法中,不允许有同名局部变量;在不同的方法中,可以有同名局部变量

  4) 与全局变量同名时,局部变量具有更高的优先级

9. 面向对象(OO)的思想:

  类的方法实现某个特定的功能,其他类不需要知道它如何实现!知道了实现此功能的类和它的方法名,就可以直接调用了,不用重复写代码!

10. 带参数的方法

  1) 将对象作为参数,传入数组中存储

  2) 将存储有对象的数组作为参数,对其属性进行操作 

11. 数组类型总结

  1) 数据类型可分为基本数据类型和引用数据类型。

    基本数据类型:int,double,char,Boolean….

      引用数据类型:String,数组,使用class定义的类型.

  2) 基本数据类型和引用数据类型的区别:(主要体现在存储方式上)

     基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

     引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

    3) 基本数据类型和引用数据类型作为方法参数区别:

    a) 基本数据类型由于在内存中的一个地址存放的是这些变量的值,所以调用函数,函数里的形参,就是复制这些变量的值,以后对形参值的变化不会影响到原来变量的值

    b) 引用数据类型由于在内存中是引用它的一个内存地址而不是具体的值,所以调用函数,函数里的形参就是复制这些变量的值的地址,当对形参的值进行修改的时候,就等于是对这些变量的值进行修改, 所以会影响到原来变量的值

12. 字符串String

  1) String是个类,引用数据类型,是可实例化对象(可new出)。

  2) 字符串的长度:

    a) 方法原型:

      public int length(){}

    b) 调用方法:

      字符串标识符.length();

  3) 字符串的比较:

    a) "=="和equals()的区别;

       i. equals():检查组成字符串内容的字符是否完全一致

              ii. "==":判断两个字符串在内存中的首地址,即判断是否是同一个字符串对象。    

    b) equalsIgnoreCase()方法:

     i. 使用方法:

        public boolean equalsIgnoreCase(String anotherString){}

              ii. 作用:

        将此 String 与另一个 String 进行比较,不考虑大小写。如果两个字符串的长度相等,并且两个字符串中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。    

    c) toLowerCase()方法与toUpperCase( )方法:

        前者将大写转为小写,后者将小写转为大写

        Eg: 将ABCdef换成abcDEF

          String str="ABCdef";
          String str1=str.subString(3);
          String str2=str.subString(3,6);
          str=str1.toLowerCase()+str2.toUpperCase();

  4) 字符串的连接:

    a) 方法1:使用“+”

    b) 方法2:使用String类的concat()方法。

      Eg: A.concat(B);

        B字符串将被连接到A字符串后面

  5) 字符串常用提取方法:

方法

说明

public int indexOf(int ch)

搜索第一个出现的字符ch的位置(或字符串value),如果没有找到字符或字符串,则返回-1.

public int indexOf(String value)

public int lastIndexOf(int ch)

搜索最后一个出现的字符ch的位置(或字符串value),如果没有找到字符或字符串,则返回-1.

public int lastIndexOf(String value)

public String substring(int index)

提取从位置索引开始的字符串部分

public String substring(int beginindex, int endindex)

提取beginindexendindex之间的字符串部分

public String trim()

返回一个前后不含任何空格的调用字符串的副本

     Eg: 简略判断邮箱是否正确:

        //检查你的邮箱格式

        if (email.indexOf('@') !=- 1 && email.indexOf('.')  >  email.indexOf('@')){

                emailCorrect = true;

        }else{

                System.out.println("Email无效。");

        }

  6) 字符串的拆分:

    字符串标示符.split();

    将一个字符串分割为子字符串,结果作为字符串数组返回

    Eg: printword=words.split(" ");

                 for(int i=0;i<printword.length;i++){

                          System.out.println( printword[i] );

                   }

13. StringBuffer: String增强版

  1) 创建空StringBuffer对象

    StringBuffer aa= new StringBuffer();  

  2) 创建一个变量存储字符串aaa

    StringBuffer aa = new StringBuffer("aaa");

  3) StringBuffer的使用:

    a) aa.toString();        //转化为String类型

    b) aa.append("**");   //追加字符串

    c) aa.length();         //获取字符串长度

    d) aa.insert(i,’s’);     //第i个增加个字符s

  4)    StringBuffer与String的特点和区别:

    a) String:是定长的字符串,其对象改变了值只是改变了指向的地址;String中equals比较的是值。

    b) StringBuffer:是可变长字符串,可以随时在StringBuffer的对象中加入字符串的拼接,它的改变是指向的地址中保留的值;StringBuffer中的equals比较的是地址。

posted on 2014-06-03 22:52  Your's Memories  阅读(521)  评论(0编辑  收藏  举报

导航