测试必备之Java知识(二)—— Java高级的东西
Java高级
类加载过程
加载(创建class对象) -> 连接(验证-准备-解析) -> 类初始化
类加载器类别
根类加载器:加载java核心类
扩展类加载器:加载JRE目录中的jar包
系统类加载器:加载用户自定义类和classpath下的jar包
Java反射机制基于什么原理
通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义
动态代理基于什么原理
方便运行时动态构建代理、动态处理代理方法调用的机制
动态代理和静态代理的区别
静态代理:事先写好代理类,缺点是每个业务类都要对应一个代理类,不灵活
动态代理:运行时自动生成代理对象,缺点是生产代理对象和调用代理方法需要额外时间
有哪些字节流?
InputStream,FileInputStream,BufferedInputStream
OutputStream,FileOutputStream,BufferedOutputStream
DataInputStream,DataOutputStream
ByteArrayInputStream,ByteArrayOutputStream
ObjectInputstream,ObjectOutputStream
PrintStream,SequenceInputStream
有哪些字符流?
Reader,InputStreamReader,FileReader,BufferedReader
Writer,OutputStreamWriter,FileWriter,BufferedWriter
CharArrayReader,CharArrayWriter,PrintWriter
还有哪些IO流?
StringReader,StringWriter,RandomAccessFile,Properties
常见网络小问题
| 问题 | 答案 |
| TCP客户端socket是什么? | Socket |
| TCP服务端socket是什么? | ServerSocket |
| UDP所用socket是什么? | DatagramSocket |
| UDP所发和收数据报的packet是什么? | DatagramPacket |
GC主要算法
GC主要对象是堆和方法区,堆中把短命对象归为新生代,长命对象归为老年代
- 根搜索算法
- 标记-清除算法
- 复制算法(新生代GC)
- 标记-整理算法(老年代GC)
- 分代收集算法(新生代+老年代GC)
触发主GC(Garbage Collector)的条件
1、当应用程序空闲时,即没有应用线程在运行时,GC会被调用
2、Java堆内存不足时,GC会被调用。当应用线程在运行,并在运行过程中创建新对象,若这时内存空间不足,JVM就会强制地调用GC线程,以便回 收内存用于新的分配。
内存泄漏的原因
- 数据库连接,网络连接,iod连接,不调用close方法,则不被GC
- 单例模式,持有外部对象的引用,长生命周期的对象
- vector,对象放入vector中
- 集合,对象放入集合中,对象被修改属性后remove对象失败
测试必备之Java知识(二)—— Java高级的东西的更多相关文章
- [Java面试二]Java基础知识精华部分.
一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...
- java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- java基础(二):java内部类
内部类像寄生虫一样生存在其他类[外部类]的内部.定义在类的内部的类叫内部类,它缩小了可见性.根据内部类定义结构的不同,可以把内部类分为 成员内部类和局部内部类.成员内部类定义的地方和外部类的成员变量和 ...
- java基础二 java的跨平台特性
一:java跨平台的特性: 1.生成不平台无关系的字节码. 2.通过和平台有关的jvm即java虚拟机来执行字节码.jvm不跨平台. 图示: 疑问:1.为什么我们不直接写字节码? 因为字节码只有jvm ...
- 重学JAVA基础(二):Java反射
看一下百度的解释: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息 ...
- 2017-2018-2 20165215 实验二 Java面向对象程序设计
20165215 实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教师:娄嘉鹏 实验日期:2018年4月16日 ...
- Java知识体系
Java知识体系 java知识结构.jpg web框架.jpg 计算机课程体系.png 2016-08-19_090929.png 流行的哈希算法生存状况.jpg "JAVA之父" ...
- java 多线程二
java 多线程一 java 多线程二 java 多线程三 java 多线程四 线程中断: /** * Created by root on 17-9-30. */ public class Test ...
- [转帖]java必备的开发知识和技能
java必备的开发知识和技能 https://blog.csdn.net/qq_34405062/article/details/89389646 学习一下java 其实上学那会儿学的 早就过时加落伍 ...
- Android开发学习必备的java知识
Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语 ...
随机推荐
- P1012 鸡兔同笼问题
题目描述 笼子里有鸡和兔若干,一直它们共有头 \(n\) 个,有脚 \(m\) 只,问笼中的鸡和兔共有多少只? 输入格式 输入包含两个整数 \(n,m(1 \le n \le 100, 2n \le ...
- element el-table 添加分页连接的序号,清除sortable排序
先看代码: <el-table :data="tableData" style="width: 100%" stripe size="mediu ...
- Linux 基础(一)stat函数
Header file: #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> DEFI ...
- 【11.61%】【codeforces 670F】Restore a Number
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- Codeforces Round #524 (Div. 2) codeforces 1080A~1080F
目录 codeforces1080A codeforces 1080B codeforces 1080C codeforces 1080D codeforces 1080E codeforces 10 ...
- 还在拼字符串?试试HTML5的template标签
HTML5中<template>标签的详细介绍(图文) 这篇文章主要介绍了HTML5中的template标签,是HTML5入门中的重要知识,需要的朋友可以参考 一.HTML5 templa ...
- 91.requests&BeautifulSoup
转载:https://www.cnblogs.com/wupeiqi/articles/6283017.html equests Python标准库中提供了:urllib.urllib2.httpli ...
- 变量 (Variable)
Tensor不能反向传播. variable可以反向传播. 什么是 Variable import torch from torch.autograd import Variable # torch ...
- 用Robot Framework+python来测试基于socket通讯的C/S系统(网络游戏)
项目终于换了方案,改用socket来实现而不是之前的http了,所以测试工具就不能用以前的了,因为测试人手少,逼不得已的必须要挖掘更多的自动化方案来弥补.于是先研究了下python的socket解决方 ...
- alpha week 2/2 Scrum立会报告+燃尽图 06
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9803 小组名称:“组长”组 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶, ...