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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

java学习日志.docx

1、java学习日志编码:GBK GB2312 中文编码 UTF-8 Unicode 国际标准编码 B/s:浏览器/服务器 c/s:客户端/服务器 SVN:公司的一台服务器,将编好并测试好的代码上传以便分享Doc命令dir:列出当前目录下的文件和文件夹md:创建目录rd:删除目录cd:进入指定目录cd.:退回到上一级目录cd/:退回到根目录del:删除文件exit:退出dos命令查看环境变量:set pathStart: 新开doc窗口java语言具有跨平台性:不同的系统有不同的虚拟机Java类库组织结构JDK:java开发工具包 包括JRE+开发工具。 给java程序开发人员使用JRE:(jav

2、a Runtime Rnvironment)Java运行环境 包括java虚拟机、java程序核心类库。给java程序的运行者使用可执行工具:javac.exe 用来把java的源代码编译成class文件 java.exe 运行class文件 javadoc.exe 生成帮助文档 打包文件java虚拟机(JVM):在不同的操作系统环境下虚拟出一个与平台无关的java运行环境,使java文件可以跨平台使用java类库:先人写好的公用代码 API帮助文档垃圾回收器(GC):java开发人员只需要申请内存,不需要回收垃圾。在java程序运行期间,不再使用的内存由GC自动回收释放。配置环境变量:配置p

3、ath为C:Program Files (x86)Javajdk1.6.0_11bin;配置环境变量技巧:新建系统变量:JAVA_HOME C:Program Files (x86)Javajdk1.6.0_11配置path为:% JAVA_HOME %bin当jdk目录改变时,改变JAVA_HOME中的目录即可。关键字必须小写注释:/单行注释 /* */多行注释 Java特有注释/* */文档注释Javadoc 可以提取文档注释中的所有内容,生成说明书,供程序员自己看单行注释和多行注释可以相互嵌套,单行注释中可以嵌套单行注释多行注释中不可以嵌套多行注释小技巧:用注释调试程序若觉得某处有错误,

4、可以用注释将其划掉,然后编译,再逐步缩小注释范围编译注释不编译编代码一定要写注释编写代码规范:例:/*需求:练习一个hello world 程序思路:1.定义一个类,因为java程序都是以类的形式存在的,类的形式其实就是一个字节码文件2.定义一个主函数,为了让该类可以独立运行3.在控制台上输出hello world语句步骤:1.用class关键字来完成类的定义。2.主函数 java虚拟机认识3.使用输出语句输出*/Class Demo/定义一个主函数,为保证程序的独立运行Publiac static void main(String args)System.out.println(“hello

5、 world”);/这是输出语句,用于将括号中的数据打印在控制台上,ln可以在数据的结尾处换行变量的声明和赋值:变量类型 变量名;/声明变量变量名=值;/对变量进行赋值变量类型 变量名=值;/声明变量的同时对它赋值数据类型:基本数据类型:1.整数型:(默认为int型) byte字节型:占1字节(8位) 有2的8次方种排列 表示范围:-128-127 short短整型:占2字节(16位) -2的15次到2的15次-1 int整型:占4字节(32位) long长整型:占8个字节(64位)2.char字符型:占2字节 存放单个字符 例:char c=a;或char c=中;3.浮点型:(默认为dou

6、ble型) float单精度浮点型:占4字节 存放数据范围比long大。 double双精度浮点型 占8字节 float f=1234.5667f;(精确程度更高)4.boolean布尔类型引用数据类型:类 接口 数组字符串: a sbbu223 String str=这是字符串的值;导入java文件:file import General Existing Projects into workspace数据类型之间的转换:自动转换:小范围到大范围 int a =10; long lo=a;强制转换:大范围到小范围 会出现数据溢出问题 long m=1223334; int s=(int)m;

7、a 97b 98 A651 49字符串和任何数据使用+,+都是连接符,最终都会变成字符串。标识符1.只能由字母、数字、下划线、$符组成;2.必须以字母、下划线、$开头;3.不能是关键字;4.严格区分大小写。注:下划线和$符用来连接两个名称关键字在java语言中已经被系统占用,有专门用途的字符串。目前有48个,全部为小写。运算符% 取余 符号与被除数相同转义字符:通过来转变后面字母或符号的含义n:换行b:退格。相当于backspace键r:按下回车键。Windows系统,回车符是由rn表示的。t:制表符,相当于tab键。 面试点Short s=4;S=s+5;/会报错 进行了两次运算 因为s会被

8、提升为int类型,运算后结果为int类型。无法赋值给short类型。需要进行强转。 S+=5;/不会报错 进行了一次运算 它在赋值时自动完成了强转操作。:异或 :和或有点不一样。 :运算特点。 true true = false; true false = true; false true = true; false false = false; 异或的运算规律: 符号的两边结果如果相同,结果是false。 两边的结果不同,结果是true。面试题: &: 和&运算的结果是一样的。但是运算过程有点小区别。 &:无论左边的运算结果是什么,右边都参与运算。 &:当左边为false时,右边不参与运算的

9、。 |: 和|运算的结果是一样的。但是运算过程有点小区别。 |:无论左边的运算结果是什么,右边都参与运算。 |:当左边为true时,右边不参与运算的。三目运算符:获取两个数中的较大数Int a;Int b;Int max=ab?a:b;获取三个数中的较大数Int o,p,q;Int temp=op?o:p;Int max=qtemp?q:temp;/最有效率的方式算出2乘以8等于几?/ System.out.println(23);对两个数互换:开发时,使用第三方变量的形式Int a,b;Int temp=a;a=b;b=temp;/* 面试的时候用。 a = a b; /a = 3 5; b

10、 = a b; /b = (35)5; b = 3; a = a b; /a = (35)3; a = 5; */ System.out.println(a=+a+,b=+b);*/是什么意思?表示异或 相同时为假,不同时为真。用十六进制运算公式:Abb=A 移位符:mn 结果为 m/2的n次幂算术运算符:+ - * / (两个整数相除结果仍为整数) + 后缀:int i=a+; 即 i=a; a=a+1; 前缀:int i=+a; 即 a=a+1; i=a;面试点:Char a=a;Char b=13;Char c=a+b;/报错 a提升为int类型 Char d=a+13; /int自动转

11、换为char。通过键盘输入:Scanner t=new Scanner(System.in);Int m=t.nextInt();循环语句Switch语句:计算出表达式的值,与每个case后的值比较,若相等,就执行相应的代码段,否则执行defult后的代码段。Switch(表达式或值(只接收byte short int char) case 值1: 代码段1; break; case 值2: 代码段2; break; case 值3: 代码段3; break; default: 代码段4: break;Switch和if语句的应用场景:判断的具体数值不多,符合byte short int ch

12、ar 类型时用switch语句,效率高。判断区间,结果为boolean类型的语句的判断等用if语句If语句的使用更广泛。if和switch的应用:if: 1,对具体的值进行判断。 2,对区间判断。 3,对运算结果是boolean类型的表达式进行判断。switch: 1,对具体的值进行判断。 2,值的个数通常是固定的。 对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存。 效率相对高一点。Switch case 语句结束1,全部的case都执行完。2.遇到breakDo while和while的区别:Do while 无论条件是否满足,循环体至少执行一

13、次。While 先判断条件,后执行。Do while 先执行,后判断。语句由;结束,所以do while中while的后边要加;号。For循环For(初始化表达式(只执行一次);布尔表达式;循环后的操作表达式)循环体While循环和for循环的区别:(for和while完全可以互换)若果循环语句的初始变量,只用来控制循环次数,则用for循环。如果初始化变量想在后续的操作中使用则用while循环。For循环中的初始变量作用域是for循环内部,循环执行开始,开辟内存,循环结束,立即销毁。而while循环的初值还在内存中。即变量有自己的作用域无限循环的最简单表现形式:for(;)while(true

14、)写循环语句时,要明确那些语句参与循环,那些不需要System.out.println() 换行嵌套循环:打印图形,外圈控制行数,内圈控制每一行元素的个数。Break和continueBreak:中断整个循环Continue:中断本个循环的本次执行,继续下一次循环Continue和break语句单独存在时。其后都不能再写任何语句。面向对象面向对象是一种思想,将功能封装进对象中,强调对象。面向对象的三个特征:封装、继承、多态。以后开发:找对象使用。没有对象,就创建一个对象。找对象,建对象,使用对象,维护对象之间的关系。类和对象的关系:类:对现实生活中事物的抽象描述。对象:该类事物实际存在的个体。

15、类中包含:成员变量、成员方法。成员变量的调用:对象.对象成员成员变量:堆内存中。作用于整个类中局部变量(local variable):栈内存中。作用于方法或语句块中。必须进行初始化。匿名对象:调用成员变量没有意义。使用方式一:当对象的方法只调用一次时,可以用匿名对象。使用方式二:可以将匿名对象作为实际参数进行传值。new car().get();get(new car();compile:编译封装定义:隐藏对象的属性和实现细节,仅对外提供公共访问方式。特点:提高安全性; 提高复用性通过权限修饰符将类的成员变量封装起来。私有不是封装,仅仅是封装的一种体现将age私有化后,类外的对象不能访问。此

16、时就需要在person类中提供age对应的访问方式。即get和set方法。对外提供访问方式,是因为可以在访问方式中加入判断语句,对访问的数据进行操作,提高代码的健壮性。 继承 如何使用继承体系中的功能:先看父类体系的描述,因为父类中定义的是该体系的共性功能。通过了解共性功能就知道该体系的基本功能。在具体使用时要创建子类的对象。1.可能父类不能创建对象2.创建子类对象可以使用更多的功能,包括父类基本的功能和子类特有的功能。总结:查阅父类功能,创建子类对象使用功能。若果子类中出现非私有的同名变量时,子类要访问本类中的同名变量时用this;子类要访问父类中的同名变量时用super通过继承,子类自动拥

17、有父类所有的成员变量和成员方法子类的引用可以访问继承的父类成员,父类的引用不能访问子类的独有成员子类不能继承父类中用private修饰的成员子类和父类不在同一个包时,不能继承父类中用private和默认的成员子类实例化1.子类所有构造方法默认访问父类无参构造方法。而且这个过程是必须的。父类会在其构造方法中对自己的属性进行赋值。子类必须要继承这些变化。2.子类构造方法中默认第一句是super();它用来调用父类中的无参构造方法。若是父类中没有无参构造方法,则会报错,子类必须手动通过super()语句来指定要访问父类中的哪个构造函数。3.若父类中没有定义无参构造方法,子类的构造方法就要用super

18、表明要调用那个构造方法。4.Super要写在构造函数的第一行,因为要先完成父类动作的初始化 5.Super和this 都只能写在构造函数的第一行,所以他们不可能同时出现,This存在时super不存在。this调用本类的构造函数,但可以保证子类中肯定还有其它构造方法访问父类构造方法& 子类中至少有一个构造方法会访问子类的构造方法。子类的构造方法。子类不能重写父类的构造方法,子类创建对象时,先加载父类构造方法,在加载子类构造方法。子类所有的构造方法第一行默认是super();语句。如果父类中没有无参构造方法,子类构造方法需要手动的用super语句调用父类构造方法。Object 根类Java代码执

19、行顺序创建对象时,先对成员变量进行默认初始化,然后再调用构造方法对父类变量初始化,然后子类自己的成员变量才能显示初始化父类初始化完毕才能让子类自己的变量显现出来方法方法的定义:修饰符 返回值类型 函数名(参数类型 形参,参数类型 形参)执行语句;Return 返回值;方法的特点:1. 定义方法可以将功能代码封装;2. 方法只有在调用时才会被执行,3. 提高了代码的复用性;4. 方法中只能调用方法,不能在方法内部定义方法。5. 无返回值时用void表示定义方法需注意:1. 明确功能结果,即返回值2. 参数构造方法:在创建对象时调用1.方法名和类名相同2.无返回值作用:给成员变量赋值,对象的初始化

20、一个类中如果定义了构造方法,则默认的构造方法就没有了,否则一定存在一个默认的空参数构造方法。构造方法和一般成员方法的区别:1.创建对象时构造方法就已经被调用,对对象进行初始化。而成员方法是在创建对象后需要该功能时专门调用2.构造方法在创建对象时(一个对象),只被调用一次,成员方法在创建对象后可以调用多次若是类中有了有参构造方法,系统不再自动生成无参构造方法。则创建对象时需要传参,否则报错。要想不传参,则需要再定义一个无参构造方法。何时调用构造函数:当某事物具备特性或者行为时一个类中默认会有一个空参数构造方法,它的权限和所属类一致。如果类被public修饰,则默认无参构造方法也被public修饰

21、。若类没有被public修饰,则默认的构造方法也没有被public修饰。默认构造方法的权限是随着类的变化而变化的。构造代码块:格式: 作用:给对象进行初始化。其中定义不同对象都具有的共性创建对象时调用,优先于构造方法。构造代码块和构造方法的区别:构造代码块:给所有对象统一进行初始化。构造函数:只给对应的对象初始化。 创建对象内存分析1.主函数先执行,加载类文件栈中:main p 2.执行类代码块,给类进行初始化3.在堆内存中开辟空间 创建对象 分配内存地址4.在堆内存中建立对象的特有属性,成员变量先默认初始化,初始化为该类型的0值。 5.成员变量显式初始化,6.构造代码块初始化7.调用构造方法

22、初始化8.将对象的内存地址赋值给栈内存中的引用变量p方法放在方法区,调用方法是,方法暂时进入栈内存中,方法执行完后消失方法的重写:1. 必须有继承2. 重写方法和被重写方法方法名相同,参数个数。类型、顺序相同3. 返回类型协变或相同注:private 修饰的方法不能被重写;子类方法不能缩小父类方法的访问权限;子类不能抛出比父类更多的异常;非静态方法不能被静态方法重写;静态方法不能被重写,但是静态变量和方法都可以被屏蔽。方法的重载:在同一个类中,方法的类名相同,参数,类型,个数,顺序至少有一个不同。自己的想法:在一个类中,成员变量先不赋值,系统分派内存先进行默认初始化。然后通过构造方法对成员变量

23、赋值。创建对象时根据参数的类型,个数,顺序判断要调用哪个构造方法。重载方法的调用:根据参数的个数,类型、顺序不同来区分调用的是哪个方法。方法的实参与形参类型相同或兼容、个数相同、顺序一致。重写和重载的区别:相同点:方法名相同不同点:1. 条件:重写:必须有继承,在子类中重写重载:在同一个类中2. 参数:重写:参数个数、类型、顺序相同重载:参数个数。类型、顺序至少有一个不同3. 返回类型:重写:返回类型必须一致或协变重载:对返回类型无要求4. 次数:父类的一个方法只能被一个子类重写一次一个类中可以有一个方法的多个重载方法5. 权限和异常重写:对方法的访问权限不能缩小,对方法抛出的异常不能扩大重载

24、:没有限制局部变量和成员变量同名时。屏蔽类中的成员变量。子类中的成员变量和父类中的成员变量同名时,在子类范围内屏蔽父类的成员变量。子类重写父类的方法后,子类范围内,屏蔽父类的成员方法。子类某静态方法和父类方法同名时,子类范围内,屏蔽父类的方法。This关键字:This表示当前对象。用在构造方法和成员方法中,只能放在第一行。用于解决变量的命名冲突和不确定性问题。1.当局部变量和成员变量同名时,局部变量屏蔽成员变量。用this调用成员变量。2.在构造方法中调用该类中的另一个构造方法,并传递要调用的构造方法所需的参数。(java中,多个构造方法可能存在共同的代码)例:this(); this(1,L

25、,48);3.在一个成员方法内,访问当前实例的引用(作为方法的实参)Print(this);不太明白This的应用:当定义类中功能时,该方法的内部用到调用该方法的对象,就用this来表示这个对象。但凡功能内用到了本类对象,都用this表示。Super关键字放在第一行的原因:任何一个类在实例化时,必须先实例化父类关于this关键字为何只能放在第一行?自己的想法:在构造方法中调用其它构造方法,本类中所有的构造方法中必须有一个会访问父类构造方法,然后又返回到了super上。以下是老师解答:假设说你在构造方法里面第一行没有写this()而是在第二行写的this()那么第一行是不是自动的回去调用supe

26、r?然后第二行又去调用this(),那么调用的构造方法是不是还得再去调用super?你必须在构造器的第一行放置super或者this构造方法,否则编译器会自动地放一个无参的super构造器的,其他的构造方法也可以调用super或者this,调用成一个递归的结构,最后的结果是父类的构造方法(可能有多级父类构造方法)始终在子类的构造器之前执行,递归的调用父类构造方法。无法执行当前的类的构造器。也就不能实例化任何对象,这个类就没作用了staticStatic:关键字 修饰成员变量和成员方法。Static 特点:1.随着类的加载而加载,随着类的消失而消失,它的生命周期最长。String name;成员

27、变量 实例变量 随着对象的创建而存在,随着对象的消失而消失。Static country=“china” 静态的成员变量 类变量2.静态变量优先于对象存在。 3.被satic修饰的内容不在堆内存中,类中所有对象共享。 4.可以直接用类名来调用。成员变量和静态变量的区别:1. 存放位置:类变量随着类的加载存在于方法区中实例变量随着对象的建立而存在于堆内存中。2.生命周期: 类变量生命周期最长,类的产生到消失 实例变量生命周期其次,对象的产生到消失。Static使用注意事项:1.静态方法只能访问静态成员(静态成员变量和静态成员方法) 非静态方法既可以访问静态也可以访问非静态(后来的可以访问先来的)

28、2.静态方法中不可以定义this,super关键字。 因为静态优先存在,所以静态方法中不可以出现this,super等代表对象的关键字。3.主函数是静态的。Static 的优缺点:优点:对对象的共享数据进行单独存储,节约空间。没必要每个对象中都存储一份。 可以直接被类名调用缺点:生命周期过长,访问出现局限性。(静态虽好,只能访问静态)Static使用的场景:1.静态变量:当对象中出现共享数据时,用static修饰。 对象中的特有数据定义成非静态。2.静态方法:当功能内部没有访问非静态数据(对象的特有数据),用static修饰 静态代码块:Static特点:随着类的加载而执行,只执行一次,并优先

29、于主函数。 用于给类进行初始化。用到了类中的内容时才会加载。若定义过多的静态变量则太消耗内存。对象消失后静态变量还在。用static修饰的变量、常量、方法是定义在类中。即这些成员是类相关的。只属于某个类,被这个类的对象所共享。(可以直接通过类名来调用,也可用对象来调用)而前面介绍的成员变量和成员方法是实例相关的。(其使用必须要通过声明实例来完成)静态变量只在类加载时初始化一次,初始化为该类型的零值;静态常量必须在定义时初始化,且只在类加载时初始化一次。静态变量、静态常量不能定义在方法中。静态方法中不能引用非静态成员变量、成员方法,(非静态可以调用静态的)调用:对象名.变量名 对象名.方法名类名.变量名 类名.方法名主函数主函数的主要作用就是调用。主函数:是一个特殊的函数。作为程序的入口,可以被jvm调用。主函数的定义:Public :代表该函数的访问权限是最大的;Static:代表主函数随着类的加载已经存在了;Void:主函数没有具体的返回值;Main:不是关键字,但很特殊,可以被jvm识别;(String【】 args):主函数的参数,参数是一个字符串类型的数组。主函数是固定格式的,虚拟机识别。Jvm在调用主函数时,传入的是长度为0的字符串类型数组,数组内没有元素。Su

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2