ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:37.52KB ,
资源ID:5268353      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5268353.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java培训笔记.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java培训笔记.docx

1、java培训笔记Jvm 是用c语言编写的调用各种平台并解释执行class文件 有多个类装载器(安全,无病毒),不同的类加载器环境是独立的 系统类装载器级别高于自定义类装载器 跨平台:Sun 公司为每个操作系统提供了一个jre沙箱模型 在 Java 2 之前的版本,运行时的安全模型使用非常严格受限的沙箱模型(Sandbox)。Java 不受信的 Applet 代码就是基于这个严格受限的沙箱模型来提供运行时的安全检查。沙箱模型的本质是,任何本地运行的代码都是受信的,有完全的权限来存取关键的系统资源。而对于 Applet,则属于不受信的代码,只能访问沙箱范围内有限的资源。当然,您可以通过数字签名的方

2、式配置您的 Applet 为受信的代码,具有同本地代码一样的权限。Java跨平台: Java文件被编译成。Class的字节码文件,由jvm执行 对于不同的平台有对应不同的安装Javac 将Java源代码-编译成-class文件 解释器 一次性解释完再执行 Jit代码生成器 边解释边执行Jre 运行环境 安装软件时有2个 按照路径寻找运行环境Cmd 如果不关闭,按照以前的运行路径运行J2SE(Standard Edition):标准版,适用于普通应用程序的开发;J2EE(Enterprise Edition):企业版,适用于大型企业级应用程序的开发;J2ME(Micro Edition):微型版

3、,适用于移动设备或嵌入式设备的程序开发Bin 目录:存放可执行文件;Lib 目录:存放Java的类库文件;Demo目录:存放演示程序;Jre 目录:存放Java运行环境文件。Main 方法有个String 数组,用于接收控制台输入的参数 如:Dos 下输入三个参数 Java test a b c三种注释 (单行,多行,文档)注释内存泄露-没有释放内存内存溢出-内存不够用 进程: 一个应用程序对应一个进程多线程:一个应用程序同时的几个动作(一段代码)javadoc:提取文档命令path、classpath、java_homepath:设备可执行文件的搜索路径classpath:告诉Java执行环

4、境,在哪些目录下可以找到您所要执行的Java程序Java_Home: jdk 的安装路径echo: 取出环境变量并且打印 echo %java_home%malloc 申请一块空间calloc 申请多块空间realloc 重新分配空间free 释放空间Java: 区分大小写标识符:可以有字符、数字、“_”、和“$”。不能以数字开头自动类型转换:byte short int long float double 自动升级 byte x=1; int y=1; x+y-int 2;强制类型转换:int x=23; char ch=(char) x; 保留最高几位,多余的去除;float k=2.3f

5、; long m=2000L; double 后的d 可以省略; char 两个字节16位,所以可以存储一个汉字。但不能存储 ”ab” ;位与、逻辑与 位或、逻辑或移位运算效率高于乘法运算;三目运算符 sex=”1” ? 男 :女堆内存: 人为地申请与释放?栈内存: 系统申请与释放引用数据类型默认为:nullSwith 内的类型只有 int char byte short 和枚举;Continue、breakSystem.gc() 运行垃圾回收器,只能是建议,系统不一定执行;垃圾回收机制 是用于释放内存的一种机制 内存空间没有对象引用指向时被认为是垃圾 (对象引用孤岛也会被认为是垃圾)数组、S

6、tring 是引用数据类型 回文数组1,2,3,2,1Ooa (Object-Oriented Analysis,OOA)面向对象分析方法是在一个系统的开发过程中进 行了系统业务调查以后,按照面向对象的思想来分析问题。Ood (Object-Oriented Design,OOD) 面向对象设计方法是OO方法中一个中间过渡 环节Oop (Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架 构。Aop:面向切面编程Soa:面向服务架构面向对象语言:c+、 Java、 c# ;数据库也开始面向对象了 如Oracle;C语言: 结构化程序设计语言,简

7、称sp (structed programming); 强调精巧的数据结构和优越的算法,关注程序的运行效率; 不适合于大规模的程序开发;对象: 其实就是“属性”和“方法”的封装体; 对象是类的一个实例,类是对象的抽象;面向对象的核心思想: 抽象面向对象的特征: 封装:强调信息的隐藏,访问修饰符来体现 继承:1、强调代码的重用 2 、Java中只有单继承,c+可以多继承 3、Final 修饰的类 不能被继承、构造方法不能被继承 4、子类的构造方法中,隐藏了自动调用父类的不带参数的构造方法super().如果 想要调用父类带参数的构造方法,必须显示的写出super(参数列表) 5、实例化一个子类的

8、时候,会先实例化父类 6、加载子类的时候,也会加载父类。 多态:强调类的灵活和扩充。(指同一函数在不同类中有不同的实现) 体现:重载、重写、抽象类、接口重载(overload): 方法具有相同的名称 使用不同的参数列表。如(数量、类型、顺序)不同。 可以是继承的,可以不是继承的;重写(覆盖)(overwrite): 方法具有相同的名称 参数列表一样 返回类型一致(兼容)如:父(Object)子(String)也可以 访问修饰符子类不能比父类更严厉 不能抛出比父类更大的异常 父类方法将被隐藏 必须在继承中发生构造方法: 没有返回值类型,也不能有返回值 只能在new时,由虚拟机自动调用。 一旦定义

9、构造方法,默认的构造方法自动消失,所以重载构造方法时要再次写 出;类装载顺序过程: 静态变量代码块普通代码块构造方法 如:静态方法中不能有非静态变量;方法的参数是放在栈里的;String s = “abc” 在常量池里查找,如果没有abc, 则在常量池里创建abcString s = new String(“abc”) 在常量池里查找,如果没有abc, 则在常量池里创建abc, 然后 再在堆里再创建空间,内容和常量池里的一样。创建多个对象时,内存空间里各个对象的属性是独立的,方法是共享的。静态变量与静态方法只与类有关,与对象无关。所以又叫类变量、类方法。 生命周期为整个程序。 可以用对象调用(

10、所有对象都调用的是一个值),也可以用类名直接调用。静态成员方法只能对类的静态成员变量进行操作;静态成员方法没有this引用;类成员变量会被赋默认值,但局部变量不会,需要手动初始化。静态引入, import static 相当于自己的了。字面量:所谓的值;Java的内存分配 Java程序运行时的内存结构分成:方法区、栈内存、堆内存、本地方法栈几种。 方法区存放装载的类数据信息,包括: 基本信息:每个类的全限定名、每个类的直接超类的全限定名、该类是类还是接口、该类型的访问修饰符、直接超接口的全限定名的有序列表。 每个已装载类的详细信息:运行时常量池、字段信息、方法信息、静态变量、到类classlo

11、ader的引用、到类class的引用。 栈内存 Java栈内存由局部变量区、操作数栈、帧数据区组成,以帧的形式存放本地方法的调用状态(包括方法调用的参数、局部变量、中间结果)。 堆内存 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 本地方法栈内存Java通过Java本地接口JNI(Java Native Interface)来调用其它语言编写的程序,在Java里面用native修饰符来描述一个方法是本地方法对象在内存中的存放形式 1、每个对象都有自己独立的数据成员,但是所有的对象共享成员方法 2、每个成员方法都有一个隐含的this引用,它总

12、是指向调用它的对象; 3、每当调用成员方法时,编译器会向this分配调用该方法的对象的地址; 4、对象,成员变量存放在堆中 5、方法中的局部变量放在栈中 6、static修饰的变量,方法也是共享的理解NEW 一个对象 1、new 的作用申请一块内存空间(堆),创建一个对象。 2、类装载的时候,首先对静态变量分配空间,然后激活类的静态变量的初始化,激活静态代码块(执行静态匿名代码块), 类加载后实例化对象分配空间,激活成员变量初始化,然后执行匿名代码块,然后执行构造方法。访问修饰符:publicProtected (所有子类)缺省(同包)private本类可以可以可以可以同包子类可以可以可以不可

13、以同包非子类可以可以可以不可以不同包子类可以可以不可以不可以不同包且非子类可以不可以不可以不可以对类使用的访问修饰符只有public和缺省两种在一个源文件中只能有一个被public修饰的类,并且文件名必须与public的类同名 this关键字有两种意义: 表示一个指向“implicit parameter”的引用 调用本类中的另一个构造器 super关键字也有两种意义: 调用父类的方法 调用父类的构造器 但是,super并不表示一个指向对象的引用,它只是一个特殊的关键字,用来告诉编译器,现在要调用的是父类的方法。向上转型(上溯造型):基类的引用可以指向派生类的对象 1、向上转型后,如果子类与父

14、类有同名的成员方法(对象方法),调用该方法的时候,实际上是调用的子类对象的方法 2、向上转型后,如果子类与父类有同名的静态方法(类方法),调用该方法的时候,实际上调用的父类的静态方法。 3、向上转型后,如果子类与父类有同名的变量(包含静态,非静态),调用该变量的时候,总是获取的父类的变量的值 4、向上转型以后,子类自己的属性,方法将会不可见。?向下转型(下溯造型):需要强制类型转换,把父类类型变量赋值给子类类型变量。 注意的是父类类型的变量必须引用于子类类型兼容的实例。静态多态也称为编译时多态,即在编译时决定调用哪个方法; 静态多态一般是指方法重载;动态多态也称为运行时多态,即在运行时才能确定

15、调用哪个方法; 动态多态一般是指方法重写;抽象方法:基类无法(或没有必要)提供被覆盖方法的具体实现,将此方法定义为抽象方法抽象类:1、如果某个类中包含有抽象方法,那么该类就必须定义成抽象类。 2、信息是不完整的,所以不可以直接实例化; 3、抽象类中也可以包含有非抽象的方法; 4、构造方法和静态方法(可以有)但不可以修饰为abstract 5、如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是 抽象类,只能用于继承,而不能实例化; 6、abstract与static不能同时存在 7、可以定义变量接口: 1、如果某个类中的所有方法都是抽象方法,那么可以考虑将该类定义为接口 2、接

16、口中的所有方法都默认为抽象方法,无需在每个方法前加abstract关键字 3、java不支持多继承,所以提出接口的概念 4、接口中只能定义public、static、final,不能定义普通变量; 5、访问修饰符必须且默认是public、static、final的(可以被重写,从而被实现) 6、不能定义变量,可以定义常量 用法:就是定义一个规范,通过向上转型实现多态,使得程序更加的灵活;抽象类与接口的区别: 一个类只能有一个父类,但可以实现多个接口;Final Final 修饰的类不能被继承; 如String、integer类类与类的关系: is -a (like-a) Has-a异常错误 E

17、rror :程序不方便处理的严重异常,比如内存溢出等 OutOfMemoryError:内存不足 StackOverflowError:栈溢出 InternalError:Java 虚拟机中出现一些意外的内部错误 UnknownError : Java 虚拟机中出现一个未知但严重的异常 异常 Execption:程序可以处理的异常 编译时异常:在写程序的时候,就必须处理,不然代码无法通过编译。 编译时异常: ClassNotFoundException:类不存在异常 CloneNotSupportedException:不支持克隆 NoSuchMethodException:非法方法名异常 I

18、OException:IO异常 FileNotFoundException:文件不存在异常 SQLException:sql异常 运行时异常 RuntimeException 在写程序的时候,可以不处理,代码可以通过编译,但是在运行的时候,JVM会自动的处理异常,处理方式为打印出异常的信息。 常见的运行时异常: ArrayIndexOutOfBoundsException:数组下标越界 ArithmeticException:算术异常 ClassCastException:类转换异常 NullPointerException:空指针异常 IllegalArgumentException:非法的

19、参数异常特例:在Java里 double 数据可以被0 除,不会发生异常。Throwable 是 Java 语言中所有错误或异常的超类Error 是Throwable 的一个子类,一般是与硬件有关的问题,如内存不够用等,不建议处理;默认异常处理:两个方法: getMessage() 在Exception类中定义的方法,被继承到所有的异常类中,用于获得与异常相关的描述信息。 void printStackTrace() 在Exception类中定义的方法,用于在控制台上显示有关异常的信息,不但有异常的原因,还涉及产生异常的代码行。多重catch时,子类异常在父类异常之前;throw new Ru

20、ntimeException(“自己抛出异常”);异常处理: 1、try catch 2、不处理,用 throws将函数内部产生的异常抛给主调函数子类不能抛出与父类不同类型的或更大的异常没有抛出异常等于抛出了运行时异常Throw 创建异常Throws 抛出异常增大虚拟机的默认内存NAN : not a number;类基础1、基本类型与其对应的封装类 JDK1.5新特性,自动封解箱byte-Byte byte-Byte 构造方法,valueOf方法 Byte-byte byteValue方法 JDK1.5 自动封装 byte b=1; Byte a=b; byte c=2; Byte d=a+

21、c; 自动解包 byte b=1; Byte a=b; byte c=a; char-Charactershort-Shortint-Integerlong-Longfloat-Floatdouble-Doubleboolean-Boolean 注意,封装类是用final修饰了的,不能被继承 封装类不会自动转换,基本数据类型可以;2、 “= =” :如果是基本类型,就比较值 如果是引用类型,就比较是否引用同一个对象(比较的地址) equals:是比较两个对象的内容。 但是Object中equals就是通过= =实现的,因此除非重写equals方法,才能真正比较对象的内容。 Sun提供的所有类,

22、都已经重写了equals方法了。3、String类 String表示一个字符串,字符串是常量,一旦创建就不能修改。 String是被final修饰的,所以String不能被继承。 String调用方法修改内容的时候,如果内容不会改变,就直接返回原来的String, 如果有改变会产生新对象。 String如果用+运算,标示字符串的连接运算,字符串的连接运算会产生大量新对象,消耗内存, 如果有频繁的做字符串连接,建议用StringBuffer或者StringBuilder4、StringBuffer类 用final修饰的,不能继承 线程安全的可变字符序列。一个类似于 String 的字符串缓冲区。

23、用stringBuffer来做字符串的处理,不会产生大量的新对象,对内存消耗小,提高了效率。 重要的方法, append方法,insert方法,delete方法,length方法,toString方法5、StringBuilder类 用final修饰的,不能继承 是JDK1.5后提供的一个类,功能和StringBuffer一样,区别是非线程安全的。6、Mathe类 用final修饰的,不能继承 abc-绝对值 roud-四舍五入 floor-小于某个数字的最大整数 sqrt -平方根 pow-几次方 max-最大值 min-最小值 random-生成0.0-1.0之间的一个double 7、O

24、bject是所有类的根类 equals方法 比较两个对象的内容但是Object是通过=来实现的,因此自己的类应该重写equals方法。 hashCode方法 返回对象的hash码,object的是把对象的地址通过哈希算法得到一个int。 equals方法与hashCode方法的约定: 1、两个对象equals方法为真,那么hashCode方法必须返回相同的值。 2、但是hashCode返回相同的值,但是不一定equals为真。 根据约定,我们知道,如果hashCode 不等,那么一定equals为false; toString方法,把对象转换成一个字符串。object的实现是,打印类名称+ha

25、sh码转换成16进制的字符串。clone方法, 创建并返回此对象的一个副本。如果要克隆,必须实现Cloneable接口,表示支持克隆。 一般重写clone方法,把访问修饰符改为public. 扩展:克隆分为浅克隆和深克隆。8、System类 属性:in,out 方法: arraycopy-数组的拷贝 currentTimeMillis-当前时间对应的毫秒 nanoTime -当前时间对应的微秒 exit-退出虚拟机 gc-建议垃圾回收 扩展: load-装载动态库-比如要调用C+的方法的时候要用.9、Class类 forName:根据类名称,得到一个类 newInstance:得到类的实例,对

26、象 getName:返回类的名字 getSuperclass:得到父类 isInstance(Object obj) :判断一个对象是否是一个类的实例 与表达式 instanceof效果一样 项目中用Java 调用 c+ 的方法; C+打包成动态库,在Java中加载动态库,再在Java中申明该方法就可以调用常见类Java.lang : 基础包,默认引用java.util.Datejava.text.DateFormatjava.text.SimpleDateFormatjava.util.Calendarjava.util.Randomjava.util.LocaleJDK5.0以后提供了自动

27、封解箱的操作,并运用了比较特殊的池操作,猜测以下代码的运行结果:TRUE、FALSEpublic static void main(String args) Integer i1=1; Integer i2=1; System.out.println(i1= =i2); Integer i3=128; Integer i4=128; System.out.println(i3= =i4); /i3, i4 大于127了。 String . split()方法:分割字符串 “|”(特殊字符)必须写成:”|”对字符串的操作,看内容前后是否有变化。如果有变化则产生新对象,负责不会产生新对象。Stri

28、ng a = “abcd”+”dfsf” 只产生一个对象。 类加载时就把“abcd”+”dfsf”转换成“abcddfsf”String a=”abc”比 String a = new String(“abc”)更节省内存。 只有常量池里有个对象,“堆”里没有产生对象,Math 类的所有方法是静态的,所以直接调用,无需定义对象;Object: finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法Transient 瞬态, 不能持久化;(对象 Instanceof 类名)判断一个对象是否是类的实例;Java中: yy-m-dd hh:mm:ss yy-m

29、-dd HH:mm:ss 24小时制Oracle中: yy-m-dd hh:mi:ss yy-m-dd hh24:mi:ssI18N 国际化Iterator 对集合进行迭代的迭代器。,一种设计模式。也可以指定为泛型; hasNext() :如果仍有元素可以迭代,则返回 true。 next: 返回迭代的下一个元素。 用法:While( i . hasNext() ) i.next() 每种数据结构都有自己的迭代器;集合中泛型的应用: 集合 泛型的JDK1.5的新特性,在编译的时候判断数据的类型,防止在运行的时候才发现类型不匹配(ClassCastException) ArrayList plist =new ArrayList(); 好处:强迫add方法只能加入Person类型 get方法不用再强转类型。集合 如何存放多个数据方法1:用数组,缺点长度固定,只能放相同的数据类型,中间或者在开始处如果要插入一个数据的话,后面的数据必须依次往后移动, 移动数据的方法还要自己写方法2:集合类 ,长度没有限制,元素的数据类型也可以不同,提供了操作数据的方法,提供有用的数据结构和算法,可以根据需要选择 合理的数据结构的集合类。集合类: 动态数组:插入不方便;地址是连续的,查询更方便; A

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1