java面试基础知识总结

学人智库 时间:2018-01-15 我要投稿
【meiwen.anslib.com - 学人智库】

  篇一:java基础知识总结

  写代码:

  1,明确需求。我要做什么?

  2,分析思路。我要怎么做?1,2,3。

  3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。

  4,代码实现。用具体的java语言代码把思路体现出来。

  学习新技术的四点:

  1,该技术是什么?

  2,该技术有什么特点(使用注意):

  3,该技术怎么使用。demo

  4,该技术什么时候用?test。

  ----------------------------------------------------------------------------------------------- 一:java概述:

  1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;

  1994年将Oak语言更名为Java;

  Java的三种技术架构:

  JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;

  1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

  2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdkin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

  环境变量的配置:

  1):永久配置方式:JAVA_HOME=%安装路径%Javajdk

  path=%JAVA_HOME%in 2):临时配置方式:set path=%path%;C:Program FilesJavajdkin

  特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置:

  1):永久配置方式:classpath=.;c:;e:

  2):临时配置方式:set classpath=.;c:;e:

  注意:在定义classpath环境变量时,需要注意的情况

  如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。

  还会在当前目录找吗?两种情况:

  1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。

  2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

  4,javac命令和java命令做什么事情呢?

  要知道java是分两部分的:一个是编译,一个是运行。

  javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

  java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.

  一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

  ---------------------------------------------------------------------------------------------- 二:java语法基础:

  1,关键字:其实就是某种语言赋予了特殊含义的单词。

  保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。

  2,标示符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含 0-9、a-z、$、_ ; 注意:

  1),数字不可以开头。 2),不可以使用关键字。

  3,常量:是在程序中的不会变化的数据。

  4,变量:其实就是内存中的一个存储空间,用于存储常量数据。

  作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

  特点:变量空间可以重复使用。

  什么时候定义变量?只要是数据不确定的时候,就定义变量。

  变量空间的开辟需要什么要素呢?

  1,这个空间要存储什么数据?数据类型。

  2,这个空间叫什么名字啊?变量名称。

  3,这个空间的第一次的数据是什么? 变量的初始化值。

  变量的作用域和生存期:

  变量的作用域:

  作用域从变量定义的位置开始,到该变量所在的那对大括号结束;

  生命周期:

  变量从定义的位置开始就在内存中活了;

  变量到达它所在的作用域的时候就在内存中消失了;

  数据类型:

  1):基本数据类型:byte、short、int、long、float、double、char、boolean

  2):引用数据类型: 数组、类、接口。

  级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double

  自动类型转换:从低级别到高级别,系统自动转的;

  强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;

  运算符号:

  1)、算术运算符。

  + - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。

  +:连接符。

  ++,--

  2)、赋值运算符。 = += -= *= /= %=

  3)、比较运算符。 特点:该运算符的特点是:运算完的结果,要么是true,要么是false。 4)、逻辑运算符。 & | ^ ! && || 逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。 &: 只有两边都为true结果是true。否则就是false。 |:只要两边都为false结果是false,否则就是true ^:异或:和或有点不一样。 两边结果一样,就为false。 两边结果不一样,就为true. & 和 &&区别: & :无论左边结果是什么,右边都参与运算。 &&:短路与,如果左边为false,那么右边不参数与运算。 | 和|| 区别:|:两边都运算。 ||:短路或,如果左边为true,那么右边不参与运算。 5)、位运算符:用于操作二进制位的运算符。 & | ^ << >> >>>(无符号右移) 练习:对两个变量的数据进行互换。不需要第三方变量。 int a = 3,b = 5;-->b = 3,a = 5; a = a + b; a = 8; b = a - b; b = 3; a = a - b; a = 5; a = a ^ b;// b = a ^ b;//b = a ^ b ^ b = a a = a ^ b;//a = a ^ b ^ a = b; 练习:高效的算出 2*8 = 2<<3;

  5,语句。

  If switch do while while for

  这些语句什么时候用? 1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。 但是建议使用switch,效率相对较高。

  switch(变量){

  case 值:要执行的语句;break;

  ?

  default:要执行的语句;

  }

  工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了

  就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;

  细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;

  2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

  3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

  2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。

  3)、当某些语句需要执行很多次时,就用循环结构。

  while和for可以进行互换。 区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

  break:作用于switch ,和循环语句,用于跳出,或者称为结束。

  break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。

  continue:只作用于循环结构,继续循环用的。

  作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

  6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。

  java中的函数的定义格式:

  修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,?){ } 执行语句; return 返回值;

  当函数没有具体的返回值时,返回的返回值类型用void关键字表示。

  如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。

  return的作用:结束函数。结束功能。

  如何定义一个函数?

  函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成: 1)、明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。

  2)、在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)。

  函数的作用:

  1)、用于定义功能。

  2)、用于封装代码提高代码的复用性。

  注意:函数中只能调用函数,不能定义函数。

  主函数:

  1)、保证该类的独立运行。 2)、因为它是程序的入口。 3)、因为它在被jvm调用。

  函数定义名称是为什么呢?

  答:1)、为了对该功能进行标示,方便于调用。

  2)、为了通过名称就可以明确函数的功能,为了增加代码的阅读性。

  重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。

  如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

  7,数 组:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。

  如何在java中表现一个数组呢?两种表现形式。

  1)、元素类型[] 变量名 = new 元素类型[元素的个数];

  2)、元素类型[] 变量名 = {元素1,元素2...};

  元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};

  ---------------------------------------------------------

  //二分查找法。必须有前提:数组中的元素要有序。

  public static int halfSeach_2(int[] arr,int key){ int min,max,mid; min = 0; max = arr.length-1; mid = (max+min)>>1; //(max+min)/2; while(arr[mid]!=key){ if(key>arr[mid]){ } min = mid + 1; else if(key1;

  }

  return mid;

  }

  ---------------------------------------------------------

  java分了5片内存。

  1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。

  栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

  只要数据运算完成所在的区域结束,该数据就会被释放。

  堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。

  1:每一个实体都有内存首地址值。

  2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。

  3:垃圾回收机制。

  ----------------------------------------------------------------------------------------------

  三:面向对象:★★★★★

  特点:

  1:将复杂的事情简单化。

  2:面向对象将以前的过程中的执行者,变成了指挥者。

  3:面向对象这种思想是符合现在人们思考习惯的一种思想。

  过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。

  匿名对象使用场景:

  1:当对方法只进行一次调用的时候,可以使用匿名对象。

  2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。

  在类中定义其实都称之为成员。成员有两种:

  1:成员变量:其实对应的就是事物的属性。

  2:成员函数:其实对应的就是事物的行为。

  所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。

  篇二:Java基础知识总结(超级经典)

  写代码:

  1,明确需求。我要做什么?

  2,分析思路。我要怎么做?1,2,3。

  3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。

  4,代码实现。用具体的java语言代码把思路体现出来。

  学习新技术的四点:

  1,该技术是什么?

  2,该技术有什么特点(使用注意):

  3,该技术怎么使用。demo

  4,该技术什么时候用?test。

  ----------------------------------------------------------------------------------------------- 一:java概述:

  1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;

  1994年将Oak语言更名为Java;

  Java的三种技术架构:

  JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;

  JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;

  JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;

  1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

  2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdkin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

  环境变量的配置:

  1):永久配置方式:JAVA_HOME=%安装路径%Javajdk

  path=%JAVA_HOME%in

  2):临时配置方式:set path=%path%;C:Program FilesJavajdkin

  特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

  classpath的配置:

  1):永久配置方式:classpath=.;c:;e:

  2):临时配置方式:set classpath=.;c:;e:

  注意:在定义classpath环境变量时,需要注意的情况

  如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;

  如果指定了classpath,那么会在指定的目录下查找要运行的类文件。

  还会在当前目录找吗?两种情况:

  1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。

  2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

  4,javac命令和java命令做什么事情呢?

  要知道java是分两部分的:一个是编译,一个是运行。

  javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

  java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.

  一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

  ---------------------------------------------------------------------------------------------- 二:java语法基础:

  1,关键字:其实就是某种语言赋予了特殊含义的单词。

  保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。

  2,标示符:Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java中的保留关键字。

  ·下面是合法的标识符:

  yourname

  your_name

  _yourname

  $yourname

  ·下面是非法的标识符:

  class

  67.9

  Hello Careers

  1),数字不可以开头。

  2),不可以使用关键字。

  3,常量:是在程序中的不会变化的数据。

  4,变量:其实就是内存中的一个存储空间,用于存储常量数据。

  作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

  特点:变量空间可以重复使用。

  什么时候定义变量?只要是数据不确定的时候,就定义变量。

  变量空间的开辟需要什么要素呢?

  1,这个空间要存储什么数据?数据类型。

  2,这个空间叫什么名字啊?变量名称。

  3,这个空间的第一次的数据是什么? 变量的初始化值。

  变量的作用域和生存期:

  变量的作用域:

  作用域从变量定义的位置开始,到该变量所在的那对大括号结束;

  生命周期:

  变量从定义的位置开始就在内存中活了;

  变量到达它所在的作用域的时候就在内存中消失了;

  数据类型:

  1):基本数据类型:byte、short、int、long、float、double、char、boolean 2):引用数据类型: 数组、类、接口。

  级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double

  自动类型转换:从低级别到高级别,系统自动转的;

  强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;

  运算符号:

  1)、算术运算符。

  + - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。

  +:连接符。

  ++,--

  2)、赋值运算符。

  = += -= *= /= %=

  3)、比较运算符。

  特点:该运算符的特点是:运算完的结果,要么是true,要么是false。

  4)、逻辑运算符。

  & | ^ ! && ||

  逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。

  &: 只有两边都为true结果是true。否则就是false。

  |:只要两边都为false结果是false,否则就是true

  ^:异或:和或有点不一样。

  两边结果一样,就为false。

  两边结果不一样,就为true.

  & 和 &&区别: & :无论左边结果是什么,右边都参与运算。

  &&:短路与,如果左边为false,那么右边不参数与运算。

  | 和|| 区别:|:两边都运算。

  ||:短路或,如果左边为true,那么右边不参与运算。

  5)、位运算符:用于操作二进制位的运算符。

  & | ^

  << >> >>>(无符号右移)

  练习:对两个变量的数据进行互换。不需要第三方变量。

  int a = 3,b = 5;-->b = 3,a = 5;

  a = a + b; a = 8;

  b = a - b; b = 3;

  a = a - b; a = 5;

  a = a ^ b;//

  b = a ^ b;//b = a ^ b ^ b = a

  a = a ^ b;//a = a ^ b ^ a = b;

  练习:高效的算出 2*8 = 2<<3;

  5,语句。

  If switch do while while for

  这些语句什么时候用?

  1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。建议使用switch,效率相对较高。

  switch(变量){

  case 值:要执行的语句;break;

  ?

  default:要执行的语句;

  }

  工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了

  就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;

  细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;

  2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

  3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

  2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。

  3)、当某些语句需要执行很多次时,就用循环结构。

  while和for可以进行互换。

  区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

  break:作用于switch ,和循环语句,用于跳出,或者称为结束。

  break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。

  continue:只作用于循环结构,继续循环用的。

  作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

  6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。

  java中的函数的定义格式:

  修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,?){

  执行语句;

  return 返回值;

  }

  当函数没有具体的返回值时,返回的返回值类型用void关键字表示。

  如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。

  return的作用:结束函数。结束功能。

  如何定义一个函数?

  函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:

  1)、明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。

  2)、在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)。

  函数的作用:

  1)、用于定义功能。

  2)、用于封装代码提高代码的复用性。

  注意:函数中只能调用函数,不能定义函数。

  主函数:

  1)、保证该类的独立运行。

  2)、因为它是程序的入口。

  3)、因为它在被jvm调用。

  函数定义名称是为什么呢?

  答:1)、为了对该功能进行标示,方便于调用。

  2)、为了通过名称就可以明确函数的功能,为了增加代码的阅读性。

  重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。

  如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

  7,一维数组:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。

  如何在java中表现一个数组呢?两种表现形式。

  1)、元素类型[] 变量名 = new 元素类型[元素的个数];

  2)、元素类型[] 变量名 = {元素1,元素2...};

  3)、System.arrayCopy(source,0,dest,0,x):语句的意思就是:复制源数组从下标0开始的x个元素到目标数组,从目标数组的下标0所对应的位置开始存取。

  4)、Arrays.sort(数组名)为数组排序的操作,但这个方法在java.util这个包里面,所以在用到的时候需要先将它导入 ---------------------------------------------------------

  //二分查找法。必须有前提:数组中的元素要有序。

  篇三:java基础知识总结(超级经典)1

  Java基础知识总结

  写代码:

  1,明确需求。我要做什么?

  2,分析思路。我要怎么做?1,2,3。

  3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。

  4,代码实现。用具体的java语言代码把思路体现出来。

  学习新技术的四点:

  1,该技术是什么?

  2,该技术有什么特点(使用注意):

  3,该技术怎么使用。demo

  4,该技术什么时候用?test。

  ----------------------------------------------------------------------------------------------- 一:java概述:

  1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;

  1994年将Oak语言更名为Java;

  Java的三种技术架构:

  JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;

  JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;

  JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;

  1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

  2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdkin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

  环境变量的配置:

  1):永久配置方式:JAVA_HOME=%安装路径%Javajdk

  path=%JAVA_HOME%in

  2):临时配置方式:set path=%path%;C:Program FilesJavajdkin

  特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

  classpath的配置:

  1):永久配置方式:classpath=.;c:;e:

  2):临时配置方式:set classpath=.;c:;e:

  注意:在定义classpath环境变量时,需要注意的情况

  如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;

  如果指定了classpath,那么会在指定的目录下查找要运行的类文件。

  还会在当前目录找吗?两种情况:

  1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。

  2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

  4,javac命令和java命令做什么事情呢?

  要知道java是分两部分的:一个是编译,一个是运行。

  javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

  java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.

  一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

  ---------------------------------------------------------------------------------------------- 二:java语法基础:

  1,关键字:其实就是某种语言赋予了特殊含义的单词。

  保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。

  2,标示符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含 0-9、a-z、$、_ ; 注意:

  1),数字不可以开头。

  2),不可以使用关键字。

  3,常量:是在程序中的不会变化的数据。

  4,变量:其实就是内存中的一个存储空间,用于存储常量数据。

  作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

  特点:变量空间可以重复使用。

  什么时候定义变量?只要是数据不确定的时候,就定义变量。

  变量空间的开辟需要什么要素呢?

  1,这个空间要存储什么数据?数据类型。

  2,这个空间叫什么名字啊?变量名称。

  3,这个空间的第一次的数据是什么? 变量的初始化值。

  变量的作用域和生存期:

  变量的作用域:

  作用域从变量定义的位置开始,到该变量所在的那对大括号结束;

  生命周期:

  变量从定义的位置开始就在内存中活了;

  变量到达它所在的作用域的时候就在内存中消失了;

  数据类型:

  1):基本数据类型:byte、short、int、long、float、double、char、boolean

  2):引用数据类型: 数组、类、接口。

  级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double

  自动类型转换:从低级别到高级别,系统自动转的;

  强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;

  运算符号:

  1)、算术运算符。

  + - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。

  +:连接符。

  ++,--

  2)、赋值运算符。

  = += -= *= /= %=

  3)、比较运算符。

  特点:该运算符的特点是:运算完的结果,要么是true,要么是false。

  4)、逻辑运算符。

  & | ^ ! && ||

  逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。

  &: 只有两边都为true结果是true。否则就是false。

  |:只要两边都为false结果是false,否则就是true

  ^:异或:和或有点不一样。

  两边结果一样,就为false。

  两边结果不一样,就为true.

  & 和 &&区别: & :无论左边结果是什么,右边都参与运算。

  &&:短路与,如果左边为false,那么右边不参数与运算。

  | 和|| 区别:|:两边都运算。

  ||:短路或,如果左边为true,那么右边不参与运算。

  5)、位运算符:用于操作二进制位的运算符。

  & | ^

  << >> >>>(无符号右移)

  练习:对两个变量的数据进行互换。不需要第三方变量。

  int a = 3,b = 5;-->b = 3,a = 5;

  a = a + b; a = 8;

  b = a - b; b = 3;

  a = a - b; a = 5;

  a = a ^ b;//

  b = a ^ b;//b = a ^ b ^ b = a

  a = a ^ b;//a = a ^ b ^ a = b;

  练习:高效的算出 2*8 = 2<<3;

  5,语句。

  If switch do while while for

  这些语句什么时候用?

  1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。

  但是建议使用switch,效率相对较高。

  switch(变量){

  case 值:要执行的语句;break;

  ?

  default:要执行的语句;

  }

  工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了

  就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;

  细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;

  2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

  3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

  2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。

  3)、当某些语句需要执行很多次时,就用循环结构。

  while和for可以进行互换。

  区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

  break:作用于switch ,和循环语句,用于跳出,或者称为结束。

  break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。

  continue:只作用于循环结构,继续循环用的。

  作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

  6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。

  java中的函数的定义格式:

  修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,?){

  执行语句;

  return 返回值;

  }

  当函数没有具体的返回值时,返回的返回值类型用void关键字表示。

  如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。

  return的作用:结束函数。结束功能。

  如何定义一个函数?

  函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:

  1)、明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。

  2)、在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)。

  函数的作用:

  1)、用于定义功能。

  2)、用于封装代码提高代码的复用性。

  注意:函数中只能调用函数,不能定义函数。

  主函数:

  1)、保证该类的独立运行。

  2)、因为它是程序的入口。

  3)、因为它在被jvm调用。

  函数定义名称是为什么呢?

  答:1)、为了对该功能进行标示,方便于调用。

  2)、为了通过名称就可以明确函数的功能,为了增加代码的阅读性。

  重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。

  如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

  7,数 组:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。

  如何在java中表现一个数组呢?两种表现形式。

  1)、元素类型[] 变量名 = new 元素类型[元素的个数];

  2)、元素类型[] 变量名 = {元素1,元素2...};

  元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};

  ---------------------------------------------------------

  //二分查找法。必须有前提:数组中的元素要有序。

  public static int halfSeach_2(int[] arr,int key){

  int min,max,mid;

  min = 0;

  max = arr.length-1;

  mid = (max+min)>>1; //(max+min)/2;

  while(arr[mid]!=key){

  if(key>arr[mid]){

  min = mid + 1;

  }

  else if(key

  max = mid - 1;

  if(max

  return -1;

  mid = (max+min)>>1;

  }

  return mid;

  }

  ---------------------------------------------------------

  java分了5片内存。

  1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。

  栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

  只要数据运算完成所在的区域结束,该数据就会被释放。

  堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。

  1:每一个实体都有内存首地址值。

  2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。

  3:垃圾回收机制。

  ---------------------------------------------------------------------------------------------- 三:面向对象:★★★★★

  特点:1:将复杂的事情简单化。

  2:面向对象将以前的过程中的执行者,变成了指挥者。

  3:面向对象这种思想是符合现在人们思考习惯的一种思想。

  过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。

  匿名对象使用场景:

  1:当对方法只进行一次调用的时候,可以使用匿名对象。

  2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。

  在类中定义其实都称之为成员。成员有两种:

  1:成员变量:其实对应的就是事物的属性。

  篇四:java基础知识总结(超级经典)

  Java基础知识总结(超级经典)

  写代码:

  1,明确需求。我要做什么?

  2,分析思路。我要怎么做?1,2,3。

  3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。

  4,代码实现。用具体的java语言代码把思路体现出来。

  学习新技术的四点:

  1,该技术是什么?

  2,该技术有什么特点(使用注意):

  3,该技术怎么使用。demo

  4,该技术什么时候用?test。

  ----------------------------------------------------------------------------------------------- 一:java概述:

  1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;

  1994年将Oak语言更名为Java;

  Java的三种技术架构:

  JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;

  1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

  2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdkin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

  环境变量的配置:

  1):永久配置方式:JAVA_HOME=%安装路径%Javajdk

  path=%JAVA_HOME%in

  2):临时配置方式:set path=%path%;C:Program FilesJavajdkin

  特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置:

  1):永久配置方式:classpath=.;c:;e:

  2):临时配置方式:set classpath=.;c:;e:

  注意:在定义classpath环境变量时,需要注意的情况

  如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。

  还会在当前目录找吗?两种情况:

  1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。

  2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

  4,javac命令和java命令做什么事情呢?

  要知道java是分两部分的:一个是编译,一个是运行。

  javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。

  java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.

  一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

  ---------------------------------------------------------------------------------------------- 二:java语法基础:

  1,关键字:其实就是某种语言赋予了特殊含义的单词。

  保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。

  2,标示符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含 0-9、a-z、$、_ ; 注意:

  1),数字不可以开头。

  2),不可以使用关键字。

  3,常量:是在程序中的不会变化的数据。

  4,变量:其实就是内存中的一个存储空间,用于存储常量数据。

  作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

  特点:变量空间可以重复使用。

  什么时候定义变量?只要是数据不确定的时候,就定义变量。

  变量空间的开辟需要什么要素呢?

  1,这个空间要存储什么数据?数据类型。

  2,这个空间叫什么名字啊?变量名称。

  3,这个空间的第一次的数据是什么? 变量的初始化值。

  变量的作用域和生存期:

  变量的作用域:

  作用域从变量定义的位置开始,到该变量所在的那对大括号结束;

  生命周期:

  变量从定义的位置开始就在内存中活了;

  变量到达它所在的作用域的时候就在内存中消失了;

  数据类型:

  1):基本数据类型:byte、short、int、long、float、double、char、boolean

  2):引用数据类型: 数组、类、接口。

  级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double

  自动类型转换:从低级别到高级别,系统自动转的;

  强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;

  运算符号:

  1)、算术运算符。

  + - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。

  +:连接符。

  ++,--

  2)、赋值运算符。

  = += -= *= /= %=

  3)、比较运算符。

  特点:该运算符的特点是:运算完的结果,要么是true,要么是false。

  4)、逻辑运算符。

  & | ^ ! && ||

  逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。

  &: 只有两边都为true结果是true。否则就是false。

  |:只要两边都为false结果是false,否则就是true

  ^:异或:和或有点不一样。

  两边结果一样,就为false。

  两边结果不一样,就为true.

  & 和 &&区别: & :无论左边结果是什么,右边都参与运算。

  &&:短路与,如果左边为false,那么右边不参数与运算。

  | 和|| 区别:|:两边都运算。

  ||:短路或,如果左边为true,那么右边不参与运算。

  5)、位运算符:用于操作二进制位的运算符。

  & | ^

  << >> >>>(无符号右移)

  练习:对两个变量的数据进行互换。不需要第三方变量。

  int a = 3,b = 5;-->b = 3,a = 5;

  a = a + b; a = 8;

  b = a - b; b = 3;

  a = a - b; a = 5;

  a = a ^ b;//

  b = a ^ b;//b = a ^ b ^ b = a

  a = a ^ b;//a = a ^ b ^ a = b;

  练习:高效的算出 2*8 = 2<<3;

  5,语句。

  If switch do while while for

  这些语句什么时候用?

  1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。

  但是建议使用switch,效率相对较高。

  switch(变量){

  case 值:要执行的语句;break;

  ?

  default:要执行的语句;

  }

  工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了

  就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;

  细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;

  2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

  3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

  2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。

  3)、当某些语句需要执行很多次时,就用循环结构。

  while和for可以进行互换。

  区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

  break:作用于switch ,和循环语句,用于跳出,或者称为结束。

  break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。

  continue:只作用于循环结构,继续循环用的。

  作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

  6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。

  java中的函数的定义格式:

  修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,?){

  执行语句;

  return 返回值;

  }

  当函数没有具体的返回值时,返回的返回值类型用void关键字表示。

  如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。

  return的作用:结束函数。结束功能。

  如何定义一个函数?

  函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:

  1)、明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。

  2)、在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)。

  函数的作用:

  1)、用于定义功能。

  2)、用于封装代码提高代码的复用性。

  注意:函数中只能调用函数,不能定义函数。

  主函数:

  1)、保证该类的独立运行。

  2)、因为它是程序的入口。

  3)、因为它在被jvm调用。

  函数定义名称是为什么呢?

  答:1)、为了对该功能进行标示,方便于调用。

  2)、为了通过名称就可以明确函数的功能,为了增加代码的阅读性。

  重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。

  如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

  7,数 组:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。

  如何在java中表现一个数组呢?两种表现形式。

  1)、元素类型[] 变量名 = new 元素类型[元素的个数];

  2)、元素类型[] 变量名 = {元素1,元素2...};

  元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};

  ---------------------------------------------------------

  //二分查找法。必须有前提:数组中的元素要有序。

  public static int halfSeach_2(int[] arr,int key){

  int min,max,mid;

  min = 0;

  max = arr.length-1;

  mid = (max+min)>>1; //(max+min)/2;

  while(arr[mid]!=key){

  if(key>arr[mid]){

  min = mid + 1;

  }

  else if(key

  max = mid - 1;

  if(max

  return -1;

  mid = (max+min)>>1;

  }

  return mid;

  }

  ---------------------------------------------------------

  java分了5片内存。

  1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。

  栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

  只要数据运算完成所在的区域结束,该数据就会被释放。

  堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。

  1:每一个实体都有内存首地址值。

  2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。

  3:垃圾回收机制。

  ---------------------------------------------------------------------------------------------- 三:面向对象:★★★★★

  特点:1:将复杂的事情简单化。

  2:面向对象将以前的过程中的执行者,变成了指挥者。

  3:面向对象这种思想是符合现在人们思考习惯的一种思想。

  过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。

  匿名对象使用场景:

  1:当对方法只进行一次调用的时候,可以使用匿名对象。

  2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。

  在类中定义其实都称之为成员。成员有两种:

  1:成员变量:其实对应的就是事物的属性。

  2:成员函数:其实对应的就是事物的行为。

  所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。

  篇五:Java基础知识总结

  JAVA基础知识总结

  第一章 Java入门:

  1. java诞生:

  1995年5月23日Sun公司发布了jdk1.0版本;作者:James Gosling.

  JAVAME微型版

  手机软件开发

  JAVASE标准版

  桌面应用程序

  JAVAEE企业版

  企业级应用开发

  2. java语言特点:

  1.简单

  没有C、C++中的头文件,指针,运算符重载

  2.面向对象

  可以开发出较大型的应用程序

  3.分布式

  通过网络访问应用程序,突破空间限制

  4.健壮性(编译时错误检测)

  消除有出错倾向的状态:指针

  5.安全性(蠕虫病毒)

  禁止运行时堆栈溢出、内存空间未授权读写

  6.可移植性

  JVM

  3. JAVA的特性、核心机制:

  特性:封装 :对外部不可见,保护类中的操作不被外部直接访问

  属性私有化,提供公共的get、set方法

  封装的好处:

  1.数据更安全,可以在方法内增加验证

  2.可以让调用者不去关心实现的细节,重用

  继承 :扩张类的功能

  多态 :

  是允许将父对象引用一个子对象的技术

  Employee employee = manager;

  允许父类对象来引用子类对象,但是实际运行过程中调用的是子

  类的方法或者属性

  编译时调用父类方法,运行时调用的是实际引用类型的方法,这

  种现象叫做动态绑定

  多态现象:运行时多态、编译时多态

  1.编译时多态:方法的重载(不建议举例)

  2.运行时多态:方法的覆盖(建议举例)

  核心机制: 虚拟机(JVM java virtual machine) 垃圾回收机制 garbage collector

  4.JDK:(Java Development Kit)1995年 SUN公司JDK1.0 98年JDK1.2 接下来是JDK1.3 1.4 目前JDK1.5已经更名为JAVA 5.0 正在使用的是java 6.0版本.

  JDK安装目录介绍:

  Bin 编译器和工具

  Demo 演示

  Docs HTML格式的类库文档

  Include 用于编译本地方法的文件

  Jre java运行环境文件

  Lib 类库文件

  Src 类库源文件

  5.Java运行环境变量配置:

  JAVA_HOME:JDK安装目录,方便在后面两个环境变量的配置中直接被

  调用即可

  path:%JAVA_HOME%in 列出可执行文件的搜素路径

  classpath:%JAVA_HOME%lib ools.jar

  %JAVA_HOME%libdt.jar

  .(当前路径)

  是java加载类的路径,只有在classpath设置的路径中的类才能被加载

  6.Java中注释:

  1.单行注释:

  //

  2.多行注释:

  /* */

  3.文档注释

  /** */

  通过javadoc命令将文档注释提取出来生成java帮助文档:Java的三种注释:

  7.Class 与public class区别:

  如果一个类声明的时候使用了public进行声明,则类名称必须与文件名称完全一致,如果类的声明使用了class的话,则类名称可以与文件名称不一致,但执行的时候肯定执行的是生成后的类名称。

  第二章 标示符,运算符

  1. 标示符:在java语言中用来给一个类、变量或方法命名的符号

  标示符的命名规则:

  1.以字母, “_” 或 “$”符号开头

  2.可以包含字母、 “_” 、“$”和数字符号

  3.大小写敏感

  4.不能与保留关键字冲突

  5.没有长度限制

  Java中命名规范:

  1.类名, 接口名 :每个单词的首字母应该大写

  2.字段、方法以及对象:第一个单词首字母应小写,其他单词首字母大写

  3.常量:全部用大写字母表示

  4.Java包(Package):它们全都字母小写

  5.命名要做到见名知意

  2.运算符:

  1.算数运算符:

  2.自增,自减运算符:

  3.关系运算符:boolean型 运行结果 true false

  4.逻辑运算符:&& || !

  支持短路运算

  &&:左边表达式为false,右边表达式不会被执行

  ||:左边表达式为true,右边表达式不会被执行

  5.赋值运算符:= 不要将其与(= =)等号运算符混淆

  6.运算符: & 、|、 ~、 ^、 <<、>> 、>>>

  1.~ :取反。1变0,0变1

  2.&:按位与。有0为0

  3.^:按位异或。相同为0,不同为1

  4.|:按位或。有1为1

  7.instanceof运算符:左面操作一个对象,右面操作一个类,当左面对象是右面的类创建时,该运算符的结果是true,否则是false。

  第三章 表达式,语句:

  1. 表达式:算术表达式 关系表达式 逻辑表达式 赋值表达式

  2. 语句:方法调用语句 表达式语句 复合语句 控制语句 package和import语句

  控制语句:1.条件控制语句 if if-else

  2.switch开关语句 switch(){case}

  switch case:

  说明:

  1.表达式expression可以是以下四种基本数据类型和枚举 类型(byte,short,int,char)

  2.case子句中的值必须是常量,而且所有case子句中的值应是不同的。

  3.case通常与break语句联用,以保证多路分支的正确实现,多个case可以公用一组执行语句。

  循环语句:1.for循环语句for

  2.while循环语句

  3.do-while循环语句

  4.break和continue语句

  break语句,跳出它所在的循环语句或switch 语句,并从紧跟该循环语句或switch 语句后的第一条语句处执行

  continue语句,用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环

  第四章 数据类型,字符串,数组:

  1.数据类型:

  基本数据类型:

  数值型

  整数型:

  字节型:byte(1个字节)

  整型:int(4个字节)

  长整型:long (8个字节)

  短整型:short(2个字节)

  实数型:浮点型:

  单精度浮点型:float(4个字节)

  双精度浮点型: double(8个字节)}

  字符型{2个字节)}

  布尔型{beloon型(1位):true 或者 false}

  空类型:NULL;

  引用数据类型:{数组 接口 类}:就是将一个堆内存的空间使用权交给了其他对象;

  自动类型转换:低优先级数据转换为高优先级数据:

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

  强制类型转换:高优先级数据强制转换为低优先级数据

  例:double b=3.2222d;

  int a= (int)b;

  3. 字符串:

  ==与equals的区别:

  在Object类中equals(Object obj)方法与==的比较结果一致的 但是equals是一个方法可以被重写,例如在String类中equals比较的就是字符串的内容

  String本身是一个类,在String类中定义的构造方法:public String (String original) 可以接收一个String类的对象,并重新实例化String对象,String还可以采用直接赋值的方式进行对象的实例化

  一个字符串是使用 “”括起来的 那么一个字符串的常量实际上本身就属于String的一个匿名对象

  String str = "hello" ; 与 String str = new String("hello"); 有什么区别?、

  String str="hello " 如果内存已经为"hello"分配了内存空间,那么Str只要指向"hello"内存对象地址;

  String str = new String("hello"); 内存中重新分配一块内存区域给"hello",str指向"hello",也就是内存中有两个hello的对象了,而且指向的地址不一样。

  String与StringBuffer的区别?

  他们都可以存储和操作字符串;

  StringBuffer 使用来存储字符串变量,他的对象是可以更改和扩充的,也可以

  用来存储字符串常量;

  String是用来存储字符串常量,存储的字符串是不可以更改的

  字符串的内容一旦声明之后则无法修改,实际上字符串变量的改变改变的是内存空间的地址的指向,而本身的字符内容没有任何的变化。

  1.根据字符串中的索引找到指定位置的字符:public char charAt(int index)

  2.将字符串变为字符数组:public char[]toCharArray()

  3.将字符数组变为字符串:

  将全部的字符数组变为String类型:public String(char[]value) 将部分的字符数组变为String类型:public String(char[]value,int offset,intcount)

  4.String- 字节数组:public bute[] gerBytes()

  字节数组-String:

  全部:public String(byte[]bytes)

  部分:public String(byte[]byres,int offset,int length)

  5. 判断是否以指定的字符串开头:public Boolean startsWith(String prefix)

  判断是否以指定的字符串结尾:public Boolean endsWith(String suffix)

  6.替换操作:public String replaceAll(String regex,String replacement)

  7.字符串截取:

  全部截取:public String substring(int beginIndex)

  部分截取:public String substring(int beginIndex.int endIndex)

  8.字符串拆分:public String[]split(string regex)

  9.字符串查找:

  取得指定字符串的位置:public int indexOf(String str),public int indexOf(String str,int fromIndex)此方法返回int型的数据,如果查找到了怎返回位置,查找不到,返回-1

  直接查找:public Boolean contains(String s)

  10.字符串的其他操作:

  去掉左右空格:public String trim()

  取得字符串的长度:public int length()

  转大写:public String toUpperCase()

  转小写:public String toLowerCase()

  4.数组: 属于引用数据类型,使用时需要开辟内存空间;

  数据类型 数组名称[]=new 数据类型[长度];

  数据类型 数组名称[]=null;

  数组名称=new数据类型[长度];

  关键字new只要一出现,怎肯定表示数据类型是是引用数据类型,要进行堆-栈空间的开辟

  二维数组:动态初始化:数据类型 数组名称[][]=new 数据类型[长度][长度]

  静态初始化:

  数据类型 数组名称[][]={{2,3,2}{2,32,2}};

[java面试基础知识总结]