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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Java入门学习笔记Word格式.docx

1、); void play() 我在玩游戏 /程序执行的入口,可以放置到任何类里面; public static void main(String args) /创建一个对象 Text12 stu=new Text12 (); /继承,调用play stu.play();每一个源文件必须有且只有一个 public class,类名与文件名保持一致。一个JAVA 可以同时定义多个类。方法: 方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是

2、从属于类和对象的。public class Text12 Computer comp; /新加的属性+comp.brand); /构造方法,用于创作类的对象,无参数的构造方法可以由系统自动调用 Text12() /创建一个对象,调用了这个类的构造方法 /继承,用stu访问play方法 stu.id=1997; stu.name=陈潇; stu.age=18; /为电脑新建一个属性 Computer c1=new Computer(); c1.brand=联想 p=c1; stu.study();class Computer String brand;面向对象的内存分析:Java虚拟机的内存可以

3、分为三个区域:栈stack、堆heap、方法区method area。栈的特点如下:1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)局部变量都在方法里面;在调用新的方法时,新建一个栈,将所有的参数等都存入栈中,方法执行完毕后关闭所在的栈,在接着向下执行,一直到最后一个执行完毕关闭退出3. 栈属于线程私有,不能实现线程间的共享!4. 栈的存储特性是“先进后出,后进先出” 子弹夹,先安的后出,5. 栈是由系统自动分配,速度快!栈是一个连续的内存空间!堆的特点如

4、下:1. 堆用于存储创建好的对象和数组(数组也是对象)2. JVM只有一个堆,被所有线程共享3. 堆是一个不连续的内存空间,可以放n个创建好的对象 比如说 new一个对象就是在堆里创建一个对象。分配灵活,速度慢!方法区(又叫静态区)特点如下:(在堆里面)1. JVM只有一个方法区,被所有线程共享!2. 方法区实际也是堆,只是用于存储类、常量相关的信息!3. 用来存放程序中永远是不变或唯一的内容。存储类相关信息,(类信息【Class对象】、静态变量、字符串常量等) 15db9742可以看作是地址构造方法构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调

5、用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。要点:1. 通过new关键字调用!2. 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。3. 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!4. 构造器的方法名必须和类名一致!例如:class Point double x, y; /构造方法,方法名称与类名保持一致 public Point(double _x, double _y) x = _

6、x; y = _y; /测量距离getDistance,传进来另一个点 public double getDistance(Point p) return Math.sqrt(x - p.x) * (x - p.x) + (y - p.y) * (y - p.y);public class TestConstructor Point p = new Point(3.0, 4.0); Point origin = new Point(0.0, 0.0); System.out.println(p.getDistance(origin);构造方法的重载=方法的重载方法名称相同,形参列表不同This

7、 表示创建好的对象构造方法的第一句总是super垃圾回收原理和算法内存管理Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放。对象空间的分配:使用new关键字创建对象即可对象空间的释放:将对象赋值null即可。垃圾回收器将负责回收所有”不可达”对象的内存空间。垃圾回收过程任何一种垃圾回收算法一般要做两件基本事情:1. 发现无用的对象2. 回收无用对象占用的内存空间。垃圾回收机制保证可以将“无用的对象”进行回收。无用的对象指的就是没有任何变量引用该对象。Java的垃圾回收器通过相关算法发现无用对象,并进行清除和整理。垃圾回收相关算法1. 引用计数法堆中每个对象都有一个引用

8、计数。被引用一次,计数加1. 被引用变量值变为null,则计数减1,直到计数为0,则表示变成无用对象。优点是算法简单,缺点是“循环引用的无用对象”无法别识别。s1和s2互相引用对方,导致他们引用计数不为0,但是实际已经无用,但无法被识别。2. 引用可达法(根搜索算法)程序把所有的引用关系看作一张图,从一个节点GC ROOT开始,寻找对应的引用节点,找到这个节点以后,继续寻找这个节点的引用节点,当所有的引用节点寻找完毕之后,剩余的节点则被认为是没有被引用到的节点,即无用的节点。开发中容易造成内存泄露的操作建议:1. 在实际开发中,经常会造成系统的崩溃。如下这些操作我们应该注意这些使用场景。 请大

9、家学完相关内容后,回头过来温习下面的内容。不要求此处掌握相关细节。如下四种情况时最容易造成内存泄露的场景,请大家开发时一定注意: 创建大量无用对象比如,我们在需要大量拼接字符串时,使用了String而不是StringBuilder。String str = for (int i = 0; i 10000; i+) str += i; /相当于产生了10000个String对象 静态集合类的使用像HashMap、Vector、List等的使用最容易出现内存泄露,这些静态变量的生命周期和应用程序一致,所有的对象Object也不能被释放。 各种连接对象(IO流对象、数据库连接对象、网络连接对象)未关

10、闭IO流对象、数据库连接对象、网络连接对象等连接对象属于物理连接,和硬盘或者网络连接,不使用的时候一定要关闭。 监听器的使用释放对象时,没有删除相应的监听器。1. 程序员无权调用垃圾回收器。2. 程序员可以调用System.gc(),该方法只是通知JVM,并不是运行垃圾回收器。尽量少用,会申请启动Full GC,成本高,影响系统性能。3. finalize方法,是Java提供给程序员用来释放对象或资源的方法,但是尽量少用。This 关键字对象创建的过程和this的本质,this用来代表当前对象构造方法是创建Java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回该类的对象,但这个

11、对象并不是完全由构造器负责创建。创建一个对象分为如下四步:1. 分配对象空间,并将对象成员变量初始化为0或空2. 执行属性值的显式初始化3. 执行构造方法,执行时对象是已经建立好了的,只是在这里对对象做进一步更加进一步的初始化工作4. 返回对象的地址给相关的变量this的本质就是“创建好的对象的地址”! 由于在构造方法调用前,对象已经创建。因此,在构造方法中也可以使用this代表“当前对象” 。this最常的用法:1. 在程序中产生二义性之处,应使用this来指明当前对象;普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。2. 使用this关键字调用重

12、载的构造方法,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。3. this不能用于static方法中。Static关键字在类中,用static声明的成员变量为静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点:1. 为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。2. 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!3. 一般用“类名.类属性/方法”来调用。(也可以通过对象引用或类名(不需要实例化)访问静态成员。)4. 在static方法中不可直接访问非static的成员。static修饰的成员变量和方法,从属于类。User2 的信息从属于类的静态的信息 普通变量和方法从属于对象的普通的属性信息从属于方法方法加载user2 时首先会将信息放在方法区内,非静态方法常量等,类加载完后就在方法区内放着,在堆中new一个对象,有从属于对象的方法,name指向高小其,这就是对象里的情况,可以在静态的方法里使用静态变量,是很容易找到的,不能在静态方法里使用非静态的属性,因为找不到。类加载了不一定有对象。所以在静态方法里不能调用非静态的方法。例如:MyPro 04,user2.

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

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