JAVA基础知识点总结_第1页
JAVA基础知识点总结_第2页
JAVA基础知识点总结_第3页
JAVA基础知识点总结_第4页
JAVA基础知识点总结_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

Java 语言的几个主要特点 平台无关性 能运行于不同的平台上 安全性 去掉了指针操作 内存由操作系统分配 面向对象 利用类使程序更加利于维护 分布式 可以使用网络文件和使用本机文件一样容易 健壮性 检查程序编译和运行的错误 Java 的三大核心机制 虚拟机机制 利用虚拟机解释字节码执行 java 程序实现跨平台 垃圾收集机制 自动内存回收 代码安全性机制 加载代码后校验代码后再执行代码 Java 文件的类型有两种 扩展名为 java 的文件 是 Java 源文件 属于编译之前的纯文本文件 存储 java 源代码 扩展名为 class 的文件 是 Java 类文件 属于编译之后的二进制文件 存储字节码 Java 的编译运行原理 首先编写 java 源文件 然后编译成 class 类文件 然后通过虚拟机解释成机器码到硬件执行 Java 是编译型语言还是解释型的语言 既不是完全编译型 也不是完全解释型 是半编译半解释的 main 方法是程序的入口方法 是由虚拟机自动调用的 语句必须用分号结束但是代码块 可以用分号结束 也可以不用分号结束 Java 中注释 各自的功能有三种 单行注释 加在行首只能注释一行 多行注释 注释多行 但不能嵌套使用 文档注释 用于生成 HTML 形式的文档 需要配合 javadoc 命令实现 Java 语言的数据类型是强类型 意味着每一个变量都必须明确声明数据类型 Java 语言中数据类型的划分 分成基本类型和引用类型两大类 基本类型 有 8 种 只能存储单一的值 不以对象的形式存在 引用类型 除了基本类型之外其他的都是引用类型 能够存储复杂数据类型 以对象的形式存在 基本类型 8 种类型 布尔类型 boolean 占 1 字节 字符类型 char 占 2 字节 整型 byte 占 1 字节 short 占 2 字节 int 占 4 字节 long 占 8 字节 浮点型 float 占 4 字节 double 占 8 字节 常见的转义字符 转义序列转义序列名称名称 2 b退格 t制表 n换行 r回车 双引号 单引号 反斜杠 常见的 Unicode 字符对应的编码 大写的 A 到 Z 是对应 65 到 90 小写的 a 到 z 是对应 97 到 122 字符 0 到 9 是对应 48 到 57 标识符起名规则 1 应以字母 下划线 美元符开头 2 后跟字母 下划线 美元符或数字 3 不能用关键字和保留字 4 严格区分大小写 5 名称长度没有限制 在声明变量的时候加上 final 修饰符即为常量 表示这个变量只能被赋一次值 如果是在一个表达式中 那 放后面表示先运算表达式 然后再进行自增运算 如果在一个表达式中 放前 面 则表示先进行自增运算然后在运算表达式 同样道理 例如 intint i 10 int j i 先进行赋值运算然后再进行自增运算 j的结果是10 intint i 10 int j i 先进行自增运算然后再进行赋值运算 j的结果是11 判断字符串内容相同用 equals 方法判断内容相同 只能判断引用是否相同 if 语句和循环语句的花括号当执行的语句只有一句的时候 可以省略 switch 语句规则 表达式 expr 的返回值必须是下述几种类型之一 int byte char short 或枚举常量 case 子句中的值必须是常量 且所有 case 子句中的值应是不同的 也必须是下述几种类型之一 int byte char short 或枚举常量 default 子句是任选的 break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块 3 退出循环 break 和 continue 区别 break 是退出整个循环 continue 是退出当前循环继续下一次循环 声明数组创建数组的方法 以下声明都是合法的 int a int a String a 以下创建数组对象都是合法的 int a new int 3 int a 1 2 3 int a new int 1 2 3 类和对象的区别 类 对象的蓝图 生成对象的模板 是对一类事物的描述 是抽象的概念上的定义 对象 对象是实际存在的该类事物的每个个体 因而也称为实例 类之间的 3 种关系 依赖关系 uses a 聚集关系 has a 继承关系 is a 一个 java 源文件可以写多个类吗但必须只能有一个公有类 并且文件名和公有类的类名相同 类中有成员 有属性 数据域 方法 构造器 构造方法 构造方法和普通方法的区别 构造方法没有返回值 方法名必须和类名相同 需要用 new 语句调用构造方法 一个构造器调用另外一个构造器需要用 this 语法调用另外一个重载构造器 需要注意的是调用语句必须是构造器 中的第一句 实例成员和静态成员的区别 实例成员 是属于对象实例的 用对象 成员名称语法调用 静态成员 和对象实例无关 是属于类本身的 用类名 成员名称语法调用 静态初始化块 statci 的执行时机是在类被加载的时候 仅执行一次 静态方法不可以直接调用同一个类中的非静态方法 静态方法不能直接调用一个非静态成员 需要用对象调用 4 局部变量和全局变量的区别 区别局部变量全局变量 声明位置方法或块内部方法外类内部 访问权限修饰符没有访问权限有访问权限 默认值没有默认值有默认值 使用形式直接使用对象调用 作用域在方法或语句块内部整个类 生命周期进入方法或语句块创建 退出方法或语句块销毁 随着对象的创建而创建 随着对象的销毁而销毁 私有成员能被子类继承但是由于访问权限的控制 在子类中不能直接使用父类的私有成员 java 中是单继承 一个子类只能有一个父类 访问权限修饰符访问的范围 private 私用 只能在被类中被访问 default 默认 只能被同一个包中的类访问 protected 受保护的 只能被同一个包中的类和不同包中的子类访问 public 公有 可以被任何类访问 覆盖方法的规则 子类覆盖方法和父类被覆盖方法的方法返回类型 方法名称 参数列表必须相同 子类覆盖方法的访问权限必须大于等于父类的方法的访问权限 方法覆盖只能存在于子类和父类之间 子类覆盖方法不能比父类被覆盖方法抛出更多异常 参数列表是否相同从三方面看 参数个数 类型和顺序 需要注意的是参数的名字不相同是无所谓的 覆盖方法的规则 方法名相同 方法的参数类型 个数 顺序至少有一项不同 方法的返回类型和修饰符均不受限制 this 和 super 作用 this 本身代表当前的对象引用 可以用 this 成员名称调用当前对象的属性和方法 如果属性和局部变量重名 可以用 this 属性名和局部变量区分开 也可以用 this 语法调用本类重载构造器 super 本事是一个特殊关键字 可以用 super 成员名称调用从父类继承的属性和方法 也可以用 super 语法 调用父类构造器 当子类构造器中没有任何显式构造器调用的时候 即既没有 this 调用也没有 super 调用的时候 5 多态对象特点 多态对象只能使用父类的成员 但如果多态对象使用了被子类覆盖的方法 则会动态绑定使用子类的成员 称 为虚拟方法调用 引用类型之间的类型转换需要遵循规则 自动转换 从子类到父类的类型可以自动转换 强制转换 从父类到子类的类型要强制转换 无继承关系的类型转换是非法的 instanceof 操作符作用 可以判断一个对象的类型是否是某一个类的类型或子类 也可以判断这个对象的类型是否是一个接口的实现类 toString 方法在打印语句中传入引用类型的对象或者对象和字符串作连接时 默认的 equals 方法实现的是比较引用地址 覆盖 equals 方法和 hashCode 方法规则 必须保证当两个对象 equals 比较为 true 的时候 返回的 hashCode 相同 当比较为 false 的时候 返回的 hashCode 不同 java 中包装类 有 8 个包装类 正好对应 8 种基本数据类型 分别是 Boolean Byte Short Integer Long Character Float Double 使用了 final 修饰符特点 final 修饰符可以修饰类 方法 变量 final 类为最终类 不能被子类继承 final 方法为最终方法 不能被子类覆盖 final 变量为常量 只能赋一次值 使用了 abstract 修饰符特点 abstract 修饰符可以修饰类和方法 abstract 类为抽象类 是不能创建对象的 abstract 方法为抽象方法 只有方法的声明 没有具体的实现 需要注意的是 有抽象方法的类一定是抽象类 抽象类不一定有抽象方法 抽象类也有构造器 但不能创建对象实例 abstract 不能和 private static final 一起使用 泛型的主要特点是类型参数化 后期绑定数据类型 6 接口中的成员特点 数据域必须是 public static final 修饰 公有静态常量 方法必须是 public abstract 修饰 公有抽象 没有构造方法 接口和类的关系 接口和类之间是实现关系 一个类用 implements 语句实现了某接口 这个类被称为接口的实现类 一个类可以 实现多个接口 一个类实现了某接口 必须覆盖这个接口中的所以方法 否则这个类必须是个抽象类 接口和接口的关系 接口和接口之间是继承关系 一个接口用 extends 继承另外一个接口 称为这个接口的子接口 一个接口可以继承多个父接口 内部类定义 一个类声明在另一个类的里面 这个类就被称为内部类 而外面的类被称为外部类 实例内部类 声明在方法外边没有 static 修饰符 静态内部类 声明在方法外边有 static 修饰符 局部内部类 声明在方法里边 在实例内部类中可以直接使用外部类的成员 不需要创建外部类的对象实例 但是如果在内部类中的成员名称 屏蔽隐藏了外部类的成员 即外部类和内部类的成员名相同 则需要用 外部类名 this 成员名 访问外部类 成员 获得一个类型的 Class 对象 方法 1 对象 getClass 方法 2 类型名 class 方法 3 Class forName 字符串的常用方法 charAt 方法 可以返回指定位置的字符 substring 方法 可以截取子字符串 length 方法 返回字符串长度 indexOf 方法 查找子串的位置 lastIndexOf 方法 反向搜索字串的位置 replaceAll 方法 替换字符串 split 方法 分解字符串 toLowerCase toUpperCase 方法 字符串大小写转换 StringBuffer 类和 String 类区别 StringBuffer 是可变类 String 是不可变类 StringBuffer 类和 StringBuilder 类区别 StringBuffer 类是线程安全的 StringBuilder 类是线程不安全的 7 Set 集合和 List 集合区别 Set Collection 的子接口 不记录元素的保存顺序 且不允许有重复元素 List Collection 的子接口 记录元素的保存顺序 且允许有重复元素 ArrayList 和 LinkedList 不同 ArrayList 的内部实现是基于内部数组 Object 所以从概念上讲它更像数组 LinkedList 的内部实现是基于一组连接的记录 所以它更象一个链表 结构 所以它们在性能上有很大的差别 ArrayList 随机访问比较块 但插入和删除元素比较慢 LinkedList 但插入和删除元素比较快 但随机访问比较慢 HashTable 和 HashMap 不同 HashTable 是线程安全的 HashMap 是线程不安全的 Vector 和 ArrayList 不同 Vector 是线程安全的 ArrayList 是线程不安全的 流按照单位划分分成字节流和字符流 按输入输出分成输入流和输出流 和文件流相关的类 FileInputStream 文件输入字节流 FileOutputStream 文件输出字节流 FileReader 文件输入字符流 FileWriter 文件输出字符流 文件流操作如果是纯文本文件应该用字符流如果是二进制文件应该用字节流 创建一个线程类的两种方式 继承 Thread 类 实现 Runnable 接口 线程体应该放在 run 方法方法里面 启动新的线程用 start 方法 一个线程方法只能 start 一次 线程主要状态 有四种 分别是 新生状态 可运行状态 阻塞状态 死亡状态 HTTP 客户端请求和回应标准协议 输入地址和端口号可从服务器上取得所需要网页信息 HTML 元素概览 主窗体元素 字符风格控制元素 版面控制元素 标题元素 链接元素 表格元素 表单元素 框架元素 Javascript 基本语法 采用标记 一般在下 也可在其他任何位置 e g 8 alert hello sj document write hello sjwin 也可将 javascript 代码单独定义成 js 文件 再导入相关页面 变量声明 var 变量类型根据赋予具体内容来决定 Javascript 中程序分三种结果 顺序结构 分支结构 循环结构 函数 function functionName parameter1 parameter2 return value 数组 vararr new Array 3 事件处理 事件处理围绕函数展开 一旦发生事件后 会根据事件类型调用相应函数 使用正则表达式验证 正则表达式 test 验证内容 xml extended markup language 提供了一套跨平台 跨网络 跨程序的语言的数据描述方式 可实现数据交换 系统配置 内容管理等功能 与 HTML 区别 都由 SGML standard general markup language 发展而来 html 中的元素都是固定的且以显示为 主 xml 中标记由用户自定义 主要以保存数据为主 所有的 xml 文件都由前导区与数据区 2 部分组成 前导 version encoding standalone 数据区 所有的数据区必须有一个根元素 一个根元素下存放多个子元素 但要求根元素必须有完结 每一个标记区分大小 写 xml 定义的属性必须使用 xml 解析 利用程序按照元素定义名称取出对应内容 常用解析方式 SAX DOM DOM Document Object Model 通过 DOM 接口应用程序可在任意时候访问 xml 文档的任何一部分数据 也称随机访问机制 DOM 分析器把整个 xml 文档 转化成 DOM 树放在内存中 因此 DOM 访问对机器性能要求较高 DOM 解析中 4 个核心接口 1 Document 代表整个 xml 文档 表示整棵树的根 2 Node 在 DOM 树中 每一个 Node 接口代表了 DOM 树中的一个节点 9 3 NodeList 表示一个节点的集合 4 NamedNodeMap 表示一组节点和其唯一名称对应的一一对应关系 主要用于属性节点的表示 DOM 解析步骤 DocumentBuilderFactory DocumentBuilder Document NodeList SAX Simple APIs for XML 采用一种顺序的模式访问 一种快速读取 XML 数据的方式 使用 SAX 解析首先应编制一个 SAX 解析器 再直接定义一个 类 并使该类继承 DefaultHandler 类 SAX 采取部分读取方式 所以可处理大型文件 JSP 基础语法 JSP 注释 格式 1 格式 2 格式 3 显示注释 Scriptlet 1 定义局部变量 编写语句 2 定义全局变量 方法 类 3 输出一个变量或一个具体的常量 与 out println 比较 使用前一种可以达到 HTML 与 Java 代码分离作用 Page 指令 定义 jsp 页面相关属性 语法 pageEncoding 与 contentType 设置编码区别 pageEncoding 指的是 JSP 文件本身编码 而 contentType 中的 charset 指的是服务器发送给客户端的编码 错误页的设置 1 指定错误出现时的跳转页 通过 errorPage 指定 2 错误处理页必须有明确的标识 通过 isErrorPage 确定 数据库连接操作 page 指令中使用 import 导入 Java 开发包 直接使用此属性将 java sql 包导入 包含指令 将工具栏 导航栏 页面头部 页面尾部分别做成一个文件 然后再需要的地方导入 包含 1 静态包含 在 JSP 编译时插入一个包含文本或代码的文件 先包含后集中编译 语法 2 动态包含 可以自动区分被包含的页面是静态还是动态 静态页面则将内容包含进来 动态页面则先进行动态处理 在将结果包含进来 语法 jsp include page 要包含的路径 flush true false 10 区别 一般推荐使用动态包含 避免重复变量问题 还可进行页面间参数传递 跳转指令 将一个用户请求从一个页面传递到另外一个页面 jsp forward page 要包含的路径 flush true false JSP 内置对象概览 pageContext JSP 的页面容器 request 得到用户的请求信息 response 服务器向客户端的回应信息 session 用来保存每一个用户的信息 application 表示所有用户共享的信息 4 种属性范围 page 只在一个页面中保存属性 跳转之后无效 request 只在一次请求中保存 服务器跳转后依然有效 session 在一次回话范围中保存 无论何种跳转都可以使用 但新开浏览器无法使用 application 在整个服务器上保存 所有用户都可使用 接受请求参数 单一参数 getParameter 一组参数 getParameterValues 地址重写方式传递 语法 动态页面地址 参数名称 1 参数内容 1URL xxx xxx 在 html 中可实现同样功能 2 页面跳转 response sendRedirect xxx xxx 区别服务器端跳转和客户端跳转 服务器跳转 执行到跳转语句时立即跳转 客户端跳转则是在整个页面执行完之后才执行跳转 操作 Cookie 浏览器所提供的一项技术 让服务器端的程序将一些只需保存在客户端或在客户端处理的数据放置在本地计算机中 不须 通过网络的传输而提高了网页处理效率 减少服务器端负载 所有的 cookie 是由服务器端设置到客户端上去的 服务器为明确区分每一个客户端 会自动设置一个 JSESSIONID 用以表示用户唯一标识 设置 Cookie 保存时间采用 setMaxAge 方法 session 对象 每一个 session 对象表示不同的访问用户 取得 session id session getId 可通过 server xml 文件配置加入 session 保存操作 判断新用户 session isNew 是通过 cookie 方式进行判断的 application 对象 尽量使用 this getServletContext 来替代 application 对象 WEB 安全性及 config 对象 存在于 WEB INF 目录中的程序安全性最高 访问 WEB INF 中的文件须在 web xml 中进行映射配置 config 对象 如果 JSP 文件想要通过初始化参数取得一些信息 则一定要在 web xml 文件中完成映射 out 对象 完成页面的输出操作 使用 println print 输出信息 pageContext 对象 表示一个页面的上下文 在标签编程中经常使用 JavaBean 简介 使用 java 语言开发放入一个可重用的组件 jsp 开发中使用 JavaBean 减少重复代码 保持 jsp 代码开 发简洁 web 开发目录结构 WEB INF web xml classes lib tags jsp js css images jsp 中导入 JavaBean 1 2 自动加载 JavaBean 设置属性 12 name 对应中声明的 id 属性 表示使用指定的 JavaBean property 要操作 的属性 表示自动匹配 取得属性 JavaBean 保存范围 page 保存在一页范围内 跳转后此 JavaBean 无效 request 一个 Javabean 对象可以保存在一次服务器跳转的范围中 session 在一个用户的操作范围中保存 重新打开浏览器时才会声明新的 JavaBean application 在整个服务器上保存 服务器关闭时才会消失 smartUpload 上传组件 smartUpload 是由 网站开发的一套上传组件包 可实现文件的上传及下载功能 实现上传文件类型 的限制以及获取上传文件名称 后缀 大小 Servlet 简介 Servlet 服务器端小程序 使用 Java 语言编写的服务器端程序 可生成动态 web 页 Servlet 主要运行在服务器端 并由服务器调用执行 采用多线程处理方式 主要用于处理客户端传来的 Http 请求 并返回响应 Servlet 处理基本流程 1 客户端 一般为 web 浏览器 通过 HTTP 提出请求 2 Web 服务器接收该请求并将请求发送给 Servlet 如果 Servlet 尚未加载 Web 服务器将把它加载到 Java 虚拟机并执 行它 3 Servlet 程序将接收该 HTTP 请求并执行某种处理 4 Servlet 会将处理后的结果向 web 服务器返回应答 5 Web 服务器将从 Servlet 收到的应答发回给客户端 程序接口实现 Servlet GenericServlet HttpServlet 自定义 Servlet Servlet 程序编译完成后应进行映射配置 可配置多个路径名称 Servlet 生命周期 加载程序 初始化 服务 销毁 卸载 Web 开发模式 Mode 1 客户端JSPJavaBeanDatabase 分 2 种 1 完全使用 JSP 开发 2 JSP JavaBean 模式 Mode 2 Mode View Controller 所有的开发以 Servlet 为主体展开 由 Servlet 接收所有客户端请求 然后根据请求调用相应的 JavaBean 并将所有的显 示交给 JSP 完成 MVC 模式强制性的使应用程序输入 处理和输出分开 他被分为 3 层 1 显示层 主要负责接收 Servlet 传递内容 并且调用 JavaBean 将内容显示给用户 2 控制层 主要负责所有的用户请求参数 判断参数是否合法 根据请求类型调用 JavaBean 执行操作并将最终的处理 结果交由显示层进行显示 13 3 模型层 完成一个独立的业务操作组件 一般以 JavaBean 或 EJB 的形式定义的 注 EJB Enterprise JavaBean 是 SUN 提供的一种分布式组件技术 主要负责业务中心的编写 分为会话 Bean 实体 Bean 消息驱动 Bean3 种 JSP 中最好只包含 3 种代码 1 接收属性 接收从 Servlet 传递过来的属性 2 判断语句 判断传递到 JSP 中的属性是否存在 3 输出内容 使用迭代或者 VO 进行输出 过滤器 Servlet 从使用功能上分为 简单 Servlet 过滤 Servlet 和监听 Servlet 三种 Filter 是在 Servlet2 3 之后新增的功能 当需限制用户访问某些资源或者请求处理时提前处理某些资源 操作原理 客户端 过虑器 1 过滤器 2 Web 资源 监听器 负责监听 Web 的各种操作 当相关的事件触发后将产生事件 并对此事件进行处理 关于不同 Servlet 的配置顺序 1 先配置过滤器 2 再配置监听器 3 最后配置简单 Servlet 表达式语言简介 EL Expression Language 是 JSP2 0 中新增的功能 可方便的访问标志位中的属性内容 避免过多的 scriptlet 代码 表达式语言内置对象 pageContext pageScope requestScope sessionScope applicationScope param paramValues head

温馨提示

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

评论

0/150

提交评论