java培训班基础资料.doc_第1页
java培训班基础资料.doc_第2页
java培训班基础资料.doc_第3页
java培训班基础资料.doc_第4页
java培训班基础资料.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA基础知识总结一基本数据类型byte 8位(一字节) char 16位(两个字节)short 16位(两字节) int 32位(4个字节)float 32位(四字节) double 64位(8字节)long 64位(八字节) boolean 8位(一字节)一共八种,作用:对基本内存空间进行划分在基本数据类型用注意以下两点:1在Java中默认的浮点数是double类型的,所以在进行浮点数变量赋值的时候,一定要注意。例如:float a; /定义了一个单精度浮点类型变量a。a=1.0;/将一个浮点数1.0赋值给a。这在java 中是不可以的。你需要这样写:float a; a=1.0f;/令1.0为单精度再赋值给a。2. Java中的布尔值只能是true或者false。不像c语言那样可以用0表示false用其它的数表示true。二数据类型的转换数据类型间的转换有两钟:一种是自动类型转换;条件是:1).两种类型必须兼容; 2).目标类型的取值要大于源类型的取值。二种是强制类型转换。但容易造成精度的丢失。java中的类型自动提升规则:one:所有byte类型,short类型,和char类型都将自动提升为int类型two:如果有一个操作符是long型。则计算结果就是long型three:如果有一个操作符是float型。则计算结果就是float型four: 如果有一个操作符是double型。则计算结果就是doubl 3.java中String和int,double数据类型之间的转换:把String转为int:String s1=abc;int i1=Integer.parseInt(s1);把String转为double:String s1=abc;double d1=Double.parseDouble(s1);把String先转为double,后转为int:String s1=abc;int i2=(int)Double.parseDouble(s1); class zhpublic static void main (String args )String s1=abc; int i1=Integer.parseInt(s1); System.out.println(i1);/为什么编译的时候不报错了,而运行的时候会报错?将int类型转换不double类型是看自动进行的,而double转换不int需要强制类型转换.例:double x=0.999; int n=(int)x; /强制类型转换是通过截断小数部分转换不整型的基本类型与其包装器类之间的转换 包装器类对象变量名new 包装器类(基本类型变量); 基本类型基本类型变量名对象变量名. 基本类型Value();例: int i=1; Integer io=new Integer(i); int b=Value(); 数据转换为String类型 String str1=”+基本类型变量; 十进制到其他进制的转换Integer.toBinaryString(int i); /十进制 转换成二进制 Integer.toHexString(int i); /十进制 转换成十六进制 Integer.toOctalString(int i); /十进制 转换成八进制 toString(int/long i, int radix)方法,可以将一个十进制数转换成任意进制的字符。byte, short, float和double等数据类型,可以利用Integer或者Long的toBinaryString, toHexString, to OctalString和toString方法转换成其他进制的字符串。其它进制到十进制的转换 Integer.valueOf(1000, 几进制);Integer和Long类的valueOf(String source, int r)方法,可以将任意进制的字符串转换成十进制数据。字节数组与数据类型的转换整型转换为字节数组,其它类型参考此例例1: public static byte InttoByteArray(int n) int tmp = n; byte b=new byte4; b3=new Integer(tmp).byteValue(); tmp=tmp8; b2=new Integer(tmp).byteValue(); tmp=tmp16; b1=new Integer(tmp).byteValue(); tmp=tmp24; b0=new Integer(tmp).byteValue(); return b; 例2:public static byte InttoByteArray(int n) int tmp1 = n; byte b=new byte4; /整型需要4个字节存储 for (int i = b.length - 1; i =0; i-) /int的后8位转换为byte型 bi = new Integer(tmp1).byteValue(); tmp1 = tmp1 8; return b; 字节数组转换为整型 byte b=new byte4; b0=0; b1=0; b2=39; b3=16; public static int toInteger(byte b) int s=0; s=b0 * 256 * 256 * 256 + b1 * 256 * 256 +b2 * 256+b3; return s; boolean类型转换为String例一:Boolean b=true;String str1=b.valueOf(b);例二: Boolean b=new Boolean(true); String str2=b.toString();三变量 对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。如果没有给出,则把它初始化为该类型变量的默认初始值。 int类型变量默认初始值为0 float类型变量默认初始值为0.0f double类型变量默认初始值为0.0 boolean类型变量默认初始值为false char类型变量默认初始值为0(ASCII码) long类型变量默认初始值为0 所有对象引用类型变量默认初始值为null,即不指向任何对象。注意数组本身也是对象,所以没有初始化的数组引用在自动初始化后其值也是null。 对于两种不同的类属性,static属性与instance属性,初始化的时机是不同的。instance属性在创建实例的时候初始化,static属性在类加载,也就是第一次用到这个类的时候初始化,对于后来的实例的创建,不再次进行初始化。这个问题会在以后的系列中进行详细讨论。 有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。 声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条限制: 1.它们仅能调用其他的static 方法。 2.它们只能访问static数据。 它们不能以任何方式引用this 或super(关键字super 与继承有关)。 如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块: / Demonstrate static variables,methods,and blocks. class UseStatic static int a = 3; static int b; static void meth(int x) System.out.println(x = + x); System.out.println(a = + a); System.out.println(b = + b); static System.out.println(Static block initialized.); b = a * 4; public static void main(String args) meth(42); 一旦UseStatic 类被装载,所有的static语句被运行。首先,a被设置为3,接着static 块执行(打印一条消息),最后,b被初始化为a*4 或12。然后调用main(),main() 调用meth() ,把值42传递给x。3个println ( ) 语句引用两个static变量a和b,以及局部变量x 。 注意:在一个static 方法中引用任何实例变量都是非法的。 下面是该程序的输出: Static block initialized. x = 42 a = 3 b = 12 在定义它们的类的外面,static 方法和变量能独立于任何对象而被使用。这样,你只要在类的名字后面加点号运算符即可。例如,如果你希望从类外面调用一个static方法,你可以使用下面通用的格式: classname.method( ) 这里,classname 是类的名字,在该类中定义static方法。可以看到,这种格式与通过对象引用变量调用非static方法的格式类似。一个static变量可以以同样的格式来访问类名加点号运算符。这就是Java 如何实现全局功能和全局变量的一个控制版本。 下面是一个例子。在main() 中,static方法callme() 和static 变量b在它们的类之外被访问。class StaticDemo static int a = 42; static int b = 99; static void callme() System.out.println(a = + a); class StaticByName public static void main(String args) StaticDemo.callme(); System.out.println(b = + StaticDemo.b); 下面是该程序的输出: a = 42 b = 99四java中类,对象和引用间的关系类:是对现实存在事物的一种抽象,一种高度的概括。对象:是类的实例,是类中的一个个体,它具有该类的属性。引用:当你引入一个包时,你可以引用该包内的类的对象,也就是说,引用针对的是类的对象。定义一个类 class ccircle int r=20; float d=2*r; public class zh public static void main (String args) ccircle cir1=new ccircle(); ccircle cir2=new ccircle();/在这个时候已经在堆中开辟了两个内存空间用 System.out.println(cir1.r); /* *引用类的对象,基本数据类型变量名输出的是值,内存分配在栈。 而引用类型输出的是地址,内存分配在堆。 * */ System.out.println(cir1); System.out.println(cir2); 四算术运算符 + - * % (取模) /(取商)比较运算符 基本数据类型 值 引用(引用的是比较地址) != = 比较两个对象的值如 p.equals(p1)逻辑运算符 & | ?:五流程控制1 顺序结构任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下一行一行地执行,中间没有任何判断和跳转。如果main方法多行代码之间没有任何流程控制,则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行。这意味着:如果没有流程控制,Java方法里的语句是一个顺序执行流,从上向下依次执行每条语句。2 分支结构Java提供了两种常见的分支控制结构:if语句和switch语句,其中if语句使用布尔表达式或布尔值作为分支条件来进行分支控制;而switch语句则用于对多个整型值进行匹配,从而实现分支控制。f条件语句if语句使用布尔表达式或布尔值作为分支条件来进行分支控制,其中if语句有如下三种形式:第一种形式:if ( logic expression )statements.第二种形式:if (logic expression)statements.elsestatements.第三种形式:if (logic expression)statements.else if(logic expression)statements./可以有零个或多个else if语句else/最后的else语句也可以省略statement.在上面if语言的三种形式中,放在if之后的括号里的只能是一个逻辑表达式,即这个表达式的返回值只能是true或false。第二种情形和第三种情形是相通的,如果第三种形式中else if块不出现,则变成了第二种形式。上面的条件语句中,if(logic expression)、else if(logic expression)以及else后花括号括起来多行代码被称为代码块,一个代码块通常被当成一个整体来执行(除非运行过程中遇到return、break、continue等关键字,或者遇到了异常),因此这个代码块也被称为条件执行体。例如如下程序:public class TestIfpublic static void main(String args) int age = 30;if (age 20)/只有当age 20时,下面花括号括起来的语句块才会执行/花括号括起来的语句是一个整体,要么一起执行,要么一起不会执行System.out.println(年龄已经大于20岁了);System.out.println(20岁以上的人应该学会承担责任.);因此,如果if(logic expression)、else if(logic expression)和else后的语句块只有一行语句时,则可以省略花括号,因为单行语句本身就是一个整体,无须花括号来把它们定义成一个整体。下面代码完全可以正常执行:/定义变量a ,并为其赋值int a = 5;if (a 4)/如果a4,执行下面的执行体,只有一行代码作为代码块System.out.println(a大于4);else/否则,执行下面的执行体,只有一行代码作为代码块System.out.println(a不大于4);通常,我们建议不要省略if、else、else if后执行块的花括号,即使条件执行体只有一行代码,因为保留花括号会有更好的可读性,而且保留花括号会减少发生错误的可能,例如如下代码,则不可正常执行:/定义变量b ,并为其赋值int b = 5;if (b 4)/如果b4,执行下面的执行体,只有一行代码作为代码块System.out.println(b大于4);else/否则,执行下面的执行体 b-;/对于下面代码而言,它已经不再是条件执行体的一部分,因此总会执行System.out.println(b不大于4);上面代码中以粗体字标识的代码行:System.out.println(b不大于4);,将总是会执行,因为这行代码并不属于else后的条件执行体,else后的条件执行体就是b-;这行代码。3 控制循环结构Java语言没有提供goto语句来控制程序的跳转,这种做法提高了程序流程控制的可读性,但降低了程序流程控制的灵活性。为了弥补这种不足,Java提供了continue和break来控制循环结构。除此之外,return可以结束整个方法,当然也就结束了一次循环。在某些时候,我们需要在某种条件出现时,强行终止结束循环,而不是等到循环条件为false时。此时,可以使用break来完成这个功能。break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束该循环,开始执行循环之后的代码。例如如下程序:public class TestBreakpublic static void main(String args) /一个简单的for循环for (int i = 0; i 10 ; i+ )System.out.println(i的值是 + i);if (i = 2)/执行该语句时将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论