
知识题
study_azhuo
这个作者很懒,什么都没留下…
展开
-
类初始化问题案例
会导致类初始化的情况 子类访问父类的静态变量,只会触发父类的初始化 Class.forName和 new 会导致初始化, 不会导致类初始化的情况 访问类的 static final 静态常量(基本类型和字符串)不会触发初始化类对象 .class 不会触发初始化 创建该类的数组不会触发初始化 ClassLoader classLoader=ClassLoader.getSystemClassLoader(); Class clazz=classLoader.loadClass(“A”); 类加载器加载类不会初始原创 2021-06-03 09:58:11 · 392 阅读 · 0 评论 -
反转链表
传入节点 1-2-3-4-0 设 第一个和第二个空节点 0 第一个保存传入节点的next值 2-3-4-0 => 3-4-0 传入节点的next指向第二个节点 1-0 => 2-1-0 现在的传入节点赋值给第二个节点 1-0 =>2-1-0 第一个节点赋值给传入节点 2-3-4-0 => 3-4-0 循环操作直到传入节点为空 public static reverseLink(head) { Node p=head;//将p作为第一个节点 head=null;原创 2021-01-11 16:23:23 · 113 阅读 · 0 评论 -
栈实现中缀转后缀表达式--计算器
思路: 由于表达式中数字可能为多位数,判断后使数字之间不相邻存入集合 用index作为指针判断是否达到临界值,当前为哪一位字符。 用str拼接数字,如果下一个字符是否为数字?字符拼接:跳出循环存入集合 将中缀形式集合转为后缀形式 数字直接添加到集合中,且该集合只存入数据 创建枚举类并实现方法getValue做优先级判断 用一个栈来压入运算符,插入运算符优先级比栈顶的优先级小时将栈顶运算符弹出并存入集合:*比+先执行,集合计算时是从头到尾取出的 如果插入运算符为 )将一直弹出栈顶运算符存入原创 2021-01-07 16:28:21 · 184 阅读 · 0 评论 -
HashMap为什么容量总为2的次幂
原文根据自己的理解交换了位置 寻找索引靠的是(n-1)&hash的值 ,n为初始容量 首先,hashMap中的tableSizeFor 方法做了处理,能保证n永远都是2次幂。 /** * Returns a power of two size for the given target capacity. */ static final int tableSizeFor(int cap) { //cap-1后,n的二进制最右一位肯定和cap的最右一位不同,即一个为0,一个为1,例如cap=转载 2020-12-22 14:38:43 · 231 阅读 · 0 评论 -
位运算实例与栈
排序算法稳定性:看相对位置是否能改变。 如果当前元素比一个元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了。 比较拗口,举个例子,序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了。 简单的数字不需要考虑稳定性,但是复杂的对象中想要得到的逻辑就会多做一些事情 ...转载 2020-12-21 11:34:01 · 143 阅读 · 0 评论 -
mina实现联网----多功能聊天室
聊天室简介 聊天室使用mina完成,用户打开客户端连接服务器,随即在控制台输入并得到信息。将私聊与群聊使用集合存入数据进行判断然后给予信息反馈,群聊时可@全体成员或任意人员,私聊#与@不能同时进行,聊天室将进行友好的提示,帮助用户更好的了解操作的方法。 -----------由于控制台输入,有些问题无法避免,请见谅----------- jar包环境配置 使用mina进行聊天室的建立,需要的jar包有: commons-logging-1.0.3.jar mina-core-2.1.3.jar slf4j-原创 2020-09-04 17:48:35 · 1083 阅读 · 5 评论 -
错题--分析--理论知识@3
1.以下代码执行的结果显示是多少()? public class Demo{ public static void main(String[] args){ System.out.print(getNumber(0)); System.out.print(getNumber(1)); System.out.print(getNumber(2)); System.out.print(getNumber(4)); } public static int getNumber(in原创 2020-08-10 20:15:11 · 448 阅读 · 0 评论 -
如何制作list集合?
class MyArrayList<T> { private int length = 10; //初始化数组,默认为10 private Object[] objArray = new Object[length]; //数组内拥有的数据数量 private int size = 0; public MyArrayList(){} //自定义数组长度 public MyArrayList(int length) {原创 2020-07-25 22:29:59 · 526 阅读 · 0 评论 -
错题--分析--理论知识@2
下面有关java hashmap的说法错误的是? 正确答案: C A.HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。 B.HashMap 的实现不是同步的,意味着它不是线程安全的 C.HashMap通过开放地址法解决哈希冲突 D.HashMap中的key-value都是存储在Entry数组中的 a) HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap的底层结构是一个数组,数组中的每一项是一条链表。 b) Hash原创 2020-07-24 15:59:41 · 1063 阅读 · 0 评论 -
错题--分析--理论知识@1
1.下面有关JVM内存,说法错误的是? 正确答案: C A.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的 B.虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的 C.方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的 D.原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的 解析: 方法区在JVM中也是一个非常重要的区域,它与原创 2020-07-14 15:35:57 · 2398 阅读 · 0 评论