如何避免在棋牌推广网站上进行非法查询活动?
摘要:做棋牌推广网站违反不,建设厅查询网站,杭州安卓软件开发,自己想做一个网站目录 一,Java基础 1.1.JDK和JRE有什么区别? 1.2.JAVA中的几种基本类型&
做棋牌推广网站违反不,建设厅查询网站,杭州安卓软件开发,自己想做一个网站目录
一#xff0c;Java基础
1.1.JDK和JRE有什么区别#xff1f;
1.2.JAVA中的几种基本类型#xff0c;各占用多少字节#xff1f;
1.3.和equals的区别是什么#xff1f;
1.4.final,finally,finalied有什么区别?
1.15.Java 中操作字符串都有哪些类#xff1f;它们…目录
一Java基础
1.1.JDK和JRE有什么区别
1.2.JAVA中的几种基本类型各占用多少字节
1.3.和equals的区别是什么
1.4.final,finally,finalied有什么区别?
1.15.Java 中操作字符串都有哪些类它们之间有什么区别
1.16.String 类的常用方法都有那些
1.17.普通类和抽象类有哪些区别
1.18.抽象类能使用 final 修饰吗
1.19.接口和抽象类有什么区别
1.20.继承和聚合的区别在哪
1.21.java 中 IO 流分为几种
1.22.BIO、NIO、AIO 有什么区别
1.23.Files的常用方法都有哪些
1.24.Integer和int的区别
1.25.|和||有区别嘛?
1.26.重载和重写的区别
1.27.静态方法能不能重写
1.28.对构造方法的理解
1.29.面向对象的特征
1.30.解释一下面向对象
1.31.值传递和引用传递的区别
1.32.静态变量和实例变量的区别
1.33.堆和栈的区别
二容器
2.1.Java 容器都有哪些
2.2.Collection 和 Collections 有什么区别
2.3.List、Set、Map 之间的区别是什么
2.4.HashMap 和 Hashtable 有什么区别
2.5.如何决定使用 HashMap 还是 TreeMap
2.9.如何实现数组和 List 之间的转换
2.10.ArrayList 和 Vector 的区别是什么
2.11.Array 和 ArrayList 有何区别
2.12.在 Queue 中 poll()和 remove()有什么区别
2.13.哪些集合类是线程安全的
2.14.迭代器 Iterator 是什么
2.15.ArrayList相关特性
2.16.LinkedList相关特性
2.17.HashSet相关特性
2.18.HashMap相关特性
2.19.HashMap底层原理是什么
2.20.HashMap的几种遍历方式
2.21.HashMapLinkedHashMapTreeMap区别底层数据结构
2.22.Hash碰撞是什么怎么解决 一Java基础
1.1.JDK和JRE有什么区别
JDKJava Development Kit 的简称java 开发工具包提供了 java 的开发环境和运行环境。 JREJava Runtime Environment 的简称java 运行环境为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE同时还包含了编译 java 源码的编译器 javac还包含了很多 java 程序调试和分析的工具。简单来说如果你需要运行 java 程序只需安装 JRE 就可以了如果你需要编写 java 程序需要安装JDK。
1.2.JAVA中的几种基本类型各占用多少字节
Java数据类型分为引用数据类型和基本数据类型。引用数据类型包括数组接口和类。基本数据类型包括数值型字符型和布尔型。数值型分为整数型和浮点型。整数型分为byte,short,int,long。分别占1个字节2个字节4个字节8个字节。浮点型分为floatdouble。分别占4个字节8个字节。字符型char占2个字节布尔型boolean占1个字节。
1.3.和equals的区别是什么
用于两个变量值的比较如果是基本数据类型则直接进行比较如果是引用数据类型则比较其地址值是否相同。
equals用于两个对象之间的比较。默认是引用比较String重写了equals方法使其变为值的比较。
1.4.final,finally,finalied有什么区别?
final是Java关键字final修饰的类不能被继承final修饰的方法不能被重写final修饰的属性初始化后不能重新赋值。
finally是Java异常处理机制的最后一环不管是否抛出异常都会执行一般用于流的关闭。
finalize是方法名。它是在Object类中定义的因此所有的类都继承了它。 finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
1.15.Java 中操作字符串都有哪些类它们之间有什么区别
操作字符串的类有String、StringBuffer、StringBuilder。
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象每次操作都会生成新的String对象然后将指针指向新的String对象而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于StringBuffer 是线程安全的而 StringBuilder 是非线程安全的但 StringBuilder 的性能却高于 StringBuffer所以在单线程环境下推荐使用StringBuilder多线程环境下推荐使用 StringBuffer。
1.16.String 类的常用方法都有那些
indexOf()返回指定字符的索引。
charAt()返回指定索引处的字符。
replace()字符串替换。
trim()去除字符串两端空白。
split()分割字符串返回一个分割后的字符串数组。
getBytes()返回字符串的 byte 类型数组。
length()返回字符串长度。
toLowerCase()将字符串转成小写字母。
toUpperCase()将字符串转成大写字符。
substring()截取字符串。
equals()字符串比较。
1.17.普通类和抽象类有哪些区别
普通类不能包含抽象方法抽象类可以包含抽象方法。抽象类不能直接实例化普通类可以直接实例化。
1.18.抽象类能使用 final 修饰吗
不能定义抽象类就是让其他类继承的如果定义为 final 该类就不能被继承这样彼此就会产生 矛盾所以 final 不能修饰抽象类。
1.19.接口和抽象类有什么区别
抽象类和接口都不能直接实例化如果要实例化抽象类变量必须指向实现所有抽象方法的子类对 象接口变量必须指向实现所有接口方法的类对象。
抽象类要被子类继承接口要被类实现。接口可继承接口并可多继承接口但类只能单根继承。
接口只能有抽象方法抽象类中可以抽象方法也可以有普通方法
接口里定义的变量只能是公共的静态的常量抽象类中的变量是普通变量。
接口和抽象类里的抽象方法必须全部被子类所实现如果子类不能全部实现父类抽象方法那么该子类只 能是抽象类。 抽象方法要被实现所以不能是静态的也不能是私有的。
1.20.继承和聚合的区别在哪
继承指的是一个类称为子类、子接口继承另外的一个类称为父类、父接口的功能并可以 增加它自己的新功能的能力继承是类与类或者接口与接口之间最常见的关系
聚合是关联关系的一种特例他体现的是整体与部分、拥有的关系即has-a的关系此时整体与 部分之间是可分离的他们可以具有各自的生命周期部分可以属于多个整体对象也可以为多个 整体对象共享比如计算机与CPU、公司与员工的关系等表现在代码层面和关联关系是一致 的只能从语义级别来区分
1.21.java 中 IO 流分为几种
按功能来分输入流input、输出流output。
按类型来分字节流和字符流。 字节流和字符流的区别是字节流按 8 位传输以字节为单位输入输出数据字符流按 16 位传输以 字符为单位输入输出数据。
1.22.BIO、NIO、AIO 有什么区别
BIOBlock IO 同步阻塞式 IO就是我们平常使用的传统 IO它的特点是模式简单使用方便并 发处理能力低。
NIONew IO 同步非阻塞 IO是传统 IO 的升级客户端和服务器端通过 Channel通道通 讯实现了多路复用。
AIOAsynchronous IO 是 NIO 的升级也叫 NIO2实现了异步非堵塞 IO 异步 IO 的操作基 于事件和回调机制。
1.23.Files的常用方法都有哪些
Files.exists()检测文件路径是否存在。
Files.createFile()创建文件。
Files.createDirectory()创建文件夹。
Files.delete()删除一个文件或目录。
Files.copy()复制文件。
Files.move()移动文件。
Files.size()查看文件个数。
Files.read()读取文件。
Files.write()写入文件。
1.24.Integer和int的区别
Integer是int的包装类是引用类型int则是java的一种基本数据类型
Integer类型的变量是引用类型变量引用Integer类型对象。
Integer 对象是不变对象其中-128到127被缓存复用
基本类型运算性能好于包装类型
1.25.|和||有区别嘛?
|| 是短路或运算左侧表达式为true时候就不再计算右侧表达式的值直接得到结果
| 是非短路逻辑运算两侧表达式都运算然后再得到结果
| 也是2进制按位或运算
1.26.重载和重写的区别
重写Override是子类对父类的允许访问的方法的实现过程进行重新编写返回值和形参都不能改变。
重载Overload是在一个类或者子类里面方法名字相同而参数不同。返回类型可以相同也可以不同。
1.27.静态方法能不能重写
静态方法不能被重写重写是建立在动态执行基础上的Java静态方法是静态绑 定执行的不能重写
1.28.对构造方法的理解
构造器即构造函数或构造方法(constructor)其本质是一个特殊的方法用来初始化对象。 构造器的名称要与类的名称一致。 如果没有定义构造器则会自动添加一个无参构造函数 构造方法也可以重载。
1.29.面向对象的特征
面向对象的三个基本特征是封装、继承、多态。
封装对实体的属性和功能实现进行访问控制向信任的实体开放对不信任的 实体隐藏。
继承使得低层级的类可以延用高层级类的特征和方法。
多态性是同名方法在不同情况下的实现不同。
1.30.解释一下面向对象
面向对象编程是一种软件设计思想其核心是通过以对象为抽象的程序单元抽象设计出类、属性、方法。逐步细化设计出程序代码。
1.31.值传递和引用传递的区别
Java只有一种参数传递方式值传递值的复制 基本类型变量作为方法参数时候将变量的值复制一份传递到方法中。 引用类型变量作为方法参数时候也是将变量的值地址值复制一份传递到方 法中。可见基本类型参数传递和引用类型参数传递是没有区别的。
1.32.静态变量和实例变量的区别
静态变量是指在类中使用static声明的变量静态变量是属于类的变量再类加载期间分配内存中只有一份可以被类的全体实例共享。
实例变量是指在类中不使用static定义成员变量这些变量属于对象的属性在 创建对象时候随着对象在堆空间中分配每个对象都有一份实例变量。
1.33.堆和栈的区别
堆内存是Java内存区域它的作用是用于存储Java中的对象当我们new一个对 象时候就会在堆内存中开辟一段空间存储对象。需要垃圾回收器回收对内存中无 用的垃圾对象。多个线程共享同一个堆内存。
栈内存是Java的内存区域每个线程都有一个独立的栈内存主要是用来存储方 法执行的局部变量方法参数和this变量就在栈内存。随着调用方法开辟栈帧方 法调用结束就销毁对应的栈帧方法中分配的局部变量也随栈帧销毁。
二容器
2.1.Java 容器都有哪些
Java的容器分为Collection和Map。Map下有三个实现类分别为HashMapHashTable和TreeMap。其中HashTable是线程安全的。Collection下有三个子接口分别为Listset和queue。List下有三个实现类分别为ArrayList,LinkedList和Vector。其中Vector是线程安全的。set下有两个实现类分别为HashSet和TreeSet。
2.2.Collection 和 Collections 有什么区别
java.util.Collection 是集合类的一个顶级接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式其直接继承接口有List与Set。
Collections则是集合类的一个工具类其中提供了一系列静态方法用于对集合中元素进行排序、搜索以及线程安全等各种操作。
2.3.List、Set、Map 之间的区别是什么
List和Set都直接继承于Collection接口其中List 是有序可以重复的集合元素有先后次序可以按照位置访问元素 可以存储null 。Set 是元素不重复集合重复元素算一个不保证元素的先后次序可以存储一个null 。Map中元素按照keyvalue成对存储可以按照key查找value查找性能好key不 可以重复可以存储一个null key
2.4.HashMap 和 Hashtable 有什么区别
HashTable是线程安全的而HashMap是非线程安全的效率上比hashTable要高。 HashMap允许空键值而hashTable不允许。HashMap去掉了HashTable 的contains方法但是加上了containsValue()和containsKey()方法。
2.5.如何决定使用 HashMap 还是 TreeMap
2.6.说一下 HashMap 的实现原理
2.7.说一下 HashSet 的实现原理
2.8.ArrayList 和 LinkedList 的区别是什么
2.9.如何实现数组和 List 之间的转换
List转换成为数组调用ArrayList的toArray方法。 数组转换成为List调用Arrays的asList方法。
2.10.ArrayList 和 Vector 的区别是什么
Vector是线程安全的而ArrayList不是。
ArrayList比Vector快它因为有同步不会过载。
ArrayList更加通用因为我们可以使用Collections工具类轻易地获取同步列表和只读列表。
2.11.Array 和 ArrayList 有何区别
Array可以容纳基本类型和对象而ArrayList只能容纳对象。
Array是指定大小的而ArrayList大小是固定的。
Array没有提供ArrayList那么多功能比如addAll、removeAll和iterator等。
2.12.在 Queue 中 poll()和 remove()有什么区别
poll() 和 remove() 都是从队列中取出一个元素但是 poll() 在获取元素失败的时候会返回空而 remove() 失败的时候会抛出异常。
2.13.哪些集合类是线程安全的
vector就比arraylist多了个同步化机制线程安全因为效率较低现在已经不太建议使用。 在web应用中特别是前台页面往往效率页面响应速度是优先考虑的。
statck堆栈类先进后出。
hashtable就比hashmap多了个线程安全。 enumeration枚举相当于迭代器。
2.14.迭代器 Iterator 是什么
迭代器是一种设计模式它是一个对象它可以遍历并选择序列中的对象而开发人员不需要了解 该序列的底层结构。迭代器通常被称为“轻量级”对象因为创建它的代价小。
2.15.ArrayList相关特性
ArrayList是有序的其长度可变元素可重复底层实现实际上就是一个数组ArrayList就是对数组进行了一系列的包装ArrayList是线程不安全的。ArrayList增删慢查询快
2.16.LinkedList相关特性
LinkedList是有顺序的其长度可变元素可重复底层实现是双向列表LinkedList线程不安全 LinkedList增删快查询慢
2.17.HashSet相关特性
HashSet是无序的 线程不安全 长度可变 元素不可重复 底层实现是HashMap
2.18.HashMap相关特性
HashMap是无序的其长度可变。HashMap中的key值是不可重复的value值是可重复的。HashMap线程不安全存储结构(JDK1.8)数组单向链表红黑树并且是基于散列算法
2.19.HashMap底层原理是什么
HashMap底层是一个散列桶数组每个散列桶是一个单向链表结构。散列桶容量从16开始每次扩容为2倍当出现散列冲突时候散列桶中元素形成链表结构。当散列表容量大于64散列桶中元素超过8个时候会转换为红黑树来提升查询性能。 查找时候利用散列算法计算到散列桶位置直接定位到散列桶定位。定位速度很快。散列表加载因子是75%也就是最多75%充满率出现散列冲突机会少严重散列冲突还有红黑树优化在散列桶中查询性能很快。
2.20.HashMap的几种遍历方式
Entry遍历keySet遍历foreach遍历keySet foreach遍历
2.21.HashMapLinkedHashMapTreeMap区别底层数据结构
HashMap内部是一个散列表查找数据性能很高。 LinkedHashMap 基本特点HashMap对 Entry 集合添加了一个双向链表。 TreeMap内部的红黑树也就是二叉树按照key进行排序。
2.22.Hash碰撞是什么怎么解决
散列计算时候当两个不同的key.hashCode()计算出相同的散列值的现象我们 就把它叫做散列冲突(哈希碰撞)。 HashMap中的解决办法是利用链表结构存储超过8个元素时候转换为红黑树。 元素数量超过阈值时候扩容也可以减少散列冲突。
