gistfile1.txt DESPACITO复习:一个StudentTest.java程序的执行过程:类是Java程序的基本组成单位,一个java源程序只能有一个主类,其他类都使用默认权限,主类名必须与文件名相同class Student{}
DESPACITO 复习: 一个StudentTest.java程序的执行过程: 类是Java程序的基本组成单位,一个java源程序只能有一个主类,其他类都使用默认权限,主类名必须与文件名相同 class Student{} Public class StudentTest{ Public static void main(String[] args){} } 开始编译时,通过文件名找到主类名,把类加载到类代码区,再找到主类的主方法 在方法区的类代码区把StudentTest类加载进来,然后运行主方法 Student s; 在主方法的栈空间开辟一个 名为s类型为Student类型的空间(创建了一个变量存放对象的地址,4字节,还没有创建对象),在当前目录中找到Student.class来加载到类代码区 S = new Student();//左右类型必须一致! 创建学生对象,在堆中给该对象开辟属性空间,空间大小取决于每个属性的类型和大小(String 4字节,int 4字节);再开辟方法空间,存放指向方法区的共享代码段的方法的地址; 默认初始化; 由new调用构造方法,接收对象的地址(变量s),然后对s指向的在堆中的对象属性空间进行初始化。 如果加static关键字,则会把对象存放在方法区的静态数据区,永远不会释放 s.setAge(18); Public void setAge(student_age){ This.age = student_age;} 调用s所指对象的setAge方法,通过堆区的对象方法区的setAge方法找到在方法区的共享代码段的setAge方法的地址,然后调用,会在栈中开辟一个setAge的方法工作空间,在该工作空间中开辟一个变量空间student_age存值18,然后把该值赋给堆区的该对象的属性空间的age属性;赋值完毕,释放该方法在栈中的工作空间 信息的隐藏: 类中的所有属性都应该设为Private,不能让用户直接访问,必须通过方法访问,这样可以 1.避免错误数据的设定, 2.增加权限验证 3.保护数据完整性 4.隐藏一个类的实现细节 5.降低耦合性(模块和模块之间的关联程度),提高可维护性,即面向接口编程 包声明和包导入: 包声明: Package tl.brother; 该源文件的中的所有字节码文件都必须放在该声明的目录下才能使用,所以需要使用打包编译来生成.class字节码文件 打包编译:Javac -d . StudentTest.java 包导入: Import tl.brother.StudentTest; 到当前目录下的tl/brother中找到StudentTest.class 加载到内存 Import tl.brother.*; 在当前目录下的tl/brother中自动搜索相应的字节码文件 常用jar包及导入 常用包: Java.Lang :包括一些java语言的核心类,如:String,Math,Integer,Excepiton,System,Thread,自动导入,提供常用功能 java.awt:用于构建和管理 用户图形界面GUI Java.util:实用工具类 Java.io:与输入/输出功能相关的类 Java.net:与网络相关的操作类TCP协议(socket)UDP协议 (datagrampackage) API的使用 超文本文件,提供说明信息 注释:便于维护,有时也用于存放配置代码 //单行注释 /*多行注释*/ 说明型注释:通常用/**/ 用在接口前:说明 用在方法前:说明该方法的作用,接收什么参数,返回什么对象 Ctrl+shift 功能型注释:通常用// 用在属性前:说明这个属性是干嘛的 常用的javadoc标记: @author:作者 @version:版本 @docroot: @param:参数 Javadoc XXX.java:用于收集公有的/**/的注释, Javadoc -private XXX.java :用于收集私有的/**/的注释 Javadoc -author - version:收集@author,@version 的注释 语法: ;用于一行代码结尾 {}用于一个语句块当作边界 标识符可以用 字母数字_$ 首字符不能为数字 JAVA是区分大小写的 汉字可以当作Java标识符 public class 田林{} 关键字不能定义为标识符,所以Java关键字都为小写! 标准类库的类也不能定义为标识符 Java关键字: Boolean 一个字节 true/false Char 两个字节存放该字符的unicode码 0到65535 Byte 一个字节 -128到127 Short 两个字节 -32768到 32767 Int 四个字节 -2^31到2^32 -1 Float 四个字节 8为有效位数 Double 八个字节 16为有效位数 Abstract:抽象 方法:只能有声明,不能有事先 类:抽象类不能创建对象,但是有构造方法,可以被继承 Assert:断言 Break:跳出本层循环 Contintue:跳出本次循环 Case :选择 Swtich:后面加整型表达式 Default: try/catch/ throw:try试着做一件事,产生了异常就catch抓住异常,然后用throw抛出异常,为了程序的继续运行 Throws:异常免责声明 Class:定义类 一个类只能继承一个父类 Interface:定义接口 一个类可以实现多个接口 Do {}while(条件判断): For(条件判断){} Implements:实现接口 Import:包导入 Package:包声明 New:用于创建对象,返回this对象的地址 Super:标明父类的特征, private:私有 Protected:保护权限的属性:子类和同一个包的类能访问 Static:静态 修饰的属性和方法,那这个属性/方法不再是和对象关联,而是和类关联 Synchronized:线程锁 Transient:瞬时的 数据类型: 变量必须先定义数据类型,才能使用; 简单类型:int之类的 引用类型:存放对象的地址 A 65 41(16) \U0041 a 97 61(16) \u0061 0 48 空格 32 20(十六进制) \u0020 \r 13 d /u000d \n 10 a /u000a 十进制整数:eg:12,-321 八进制:要求以0开头 eg:012 十六进制:以0x开头 长整型:加L