做ppt的网站 知乎,codex.wordpress.org,温州市住房和城乡建设厅网站,聊天软件开发哪个好点1.java的8个基本数据类型? 整型: byte(占用1个字节) short(占用2个字节) int(占用4个字节) long(占用8个字节) 浮点型: float(占用4个字节)、double(占用8个字节) 字符型: char 布尔型: boolean
2.ArrayList和LinkedList的区别? 可以说ArrayList和LinkedList除了是同属于集合…1.java的8个基本数据类型? 整型: byte(占用1个字节) short(占用2个字节) int(占用4个字节) long(占用8个字节) 浮点型: float(占用4个字节)、double(占用8个字节) 字符型: char 布尔型: boolean
2.ArrayList和LinkedList的区别? 可以说ArrayList和LinkedList除了是同属于集合类其他都是不同的因为他们本身的实现是两种不同的实现方式ArrayList 维护的是一个动态数组LinkedList维护的是一个双向链表而他们之间的不同是数组与链表的特性比较 往集合中间插入数据时ArrayList比linkedList慢ArrayList正好扩容的时候添加数据要比LinkedList慢查询数据ArrayList更快
3.HashMap是否是线程安全的? HashMap的底层原理 HashMap是线程不安全的HashTable、ConcurrentHashMap是线程安全的 HashMap是基于哈希表的Map接口的非同步实现。 HashMap底层就是一个数组结构数组中的每一项又是一个链表。数组链表结构新建一个HashMap的时候就会初始化一个数组。Entry就是数组中的元素每个Entry其实就是一个key-value的键值对它持有一个指向下一个元素的引用这就构成了链表HashMap底层将key-value当成一个整体来处理这个整体就是一个Entry对象。当需要存储一个Entry对象时会根据hash算法来决定在其数组中的位置在根据equals方法决定其在该数组位置上的链表中的存储位置当需要取出一个Entry对象时也会根据hash算法找到其在数组中的存储位置 在根据equals方法从该位置上的链表中取出Entry。JDK1.8做出了改变使用 数组 链表 红黑树 的结构。当节点数不大于8时还是一个链表结构只不过插入节点时变成了 尾插法 当节点数大于8后将从链表结构转化成红黑树结构
4.成员变量和局部变量的区别 1所在位置 局部变量在每个方法内部使用出了方法不可用 成员变量属于每个类在方法的外部描述类的属性 2作用范围 局部变量作用在方法内部 成员变量作用于每个类 3默认值 局部变量声明之后系统不会赋予默认值必须自己手动赋值否则会报错 成员变量系统会根据该变量的类型赋予其相应的特征值不手动赋值也不会报错 4所在内存位置不一样 成员变量是在对象创建以后存在于堆中对象回收时成员变量消失 局部变量是在方法被调用时存在于栈中方法调执行结束从栈中清除 5生命周期不同 成员变量随对象的创建而创建对象回收时成员变量消失 局部变量随着方法的调用被创建方法执行结束后从栈中清除 5.说说重载与重写的区别 【1】定义的位置不同重载方法必须在同一个类中定义而重写方法必须在子类中定义。 【2】方法名和参数列表不同重载方法的方法名相同但参数列表不同而重写方法的方法名和参数列表必须与父类相同。 【3】返回类型不同重载方法的返回类型可以不同而重写方法的返回类型必须相同或是其子类。 【4】目的不同重载的目的是为了提高代码的可读性和简洁性而重写的目的是为了在子类中灵活地修改父类的行为。
6.java中String字符串类中的常用方法 charAt 根据下标获取对应位置字符、 contains 判断一个字符串中是否包含某个字符串返回值为boolean类型、 equals 判断两个字符串内容是否相等、 indexOf 根据字符串获取在字符串中的下标如果不存在返回-1、 length 获取字符串的长度 replace 替换字符串、 split 根据分隔符拆分字符串返回值为数组、 substring 根据下标截取字符串
7.面向对象的三大特征封装继承多态 1.封装是指隐藏对象的属性和实现细节仅对外提供公共访问方式。 1将属性进行私有化private【不能直接修改属性】 2提供公共的publicset/get方法对数据进行判断并赋值 a. 提供“set变量名(参数)”方法用于设置成员变量的值方法用public修饰 b. 提供“get变量名()”方法用于获取成员变量的值方法用public修饰 3提供相应的构造器/构造方法与set/get方法结合 2.继承通过extends xxx实现就是子类继承父类的属性和行为使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。 3.多态父类引用指向子类对象。
8.static关键字的使用
静态属性 被static修饰的属性叫静态属性(类变量)static修饰的变量不属于某一个类是共享的。不需要new对象就能调用。
静态方法 ①、静态方法中只能调用静态的方法或属性。在静态方法中不能使用this关键字super关键字 ②、静态方法随着类的加载而加载。可以通过“类.静态方法”的方式调用
静态代码块 代码块的作用用来初始化类、对象
静态内部类 Java允许将类A声明在类B中类A就是内部类类B为外部类 内部类作为外部类的成员,可以调用外部类的结构,可以用static修饰外部类不能用static修饰
9.Java中构造方法是什么,用途是什么?
在Java中构造方法是一种特殊类型的方法用于创建对象时初始化对象的实例变量。构造方法的作用如下 1. 创建对象构造方法用于创建对象的实例。当使用new关键字创建一个对象时会调用该对象对应的构造方法并在构造方法中进行必要的初始化操作。 2. 初始化实例变量构造方法用于初始化对象的实例变量。通过在构造方法中为对象的实例变量赋初值确保对象在创建时具备合法的初始状态。 3. 处理对象的初始化逻辑构造方法可以包含任意逻辑和代码用于处理对象的初始化逻辑。例如可以在构造方法中进行计算、调用其他方法等操作以确保对象在创建后能够满足特定需求。 4. 提供重载的构造方法可以定义多个构造方法通过不同的参数列表来实现方法的重载。这样可以在创建对象时根据不同的参数选择不同的构造方法以满足不同的需求。
问题什么是构造方法? 和类名相同不写返回值的方法在创建对象时会调用构造方法用于给属性赋值/初始化一些配置信息等
问题静态代码块和构造方法哪个先执行 静态代码块
问题构造方法可以被继承吗 不能
10.java中的this关键字 this用于引用当前对象的实例调用本类中的成员变量其他方法和本类中的其他构造方法。
11.Java的多线程中的synchronized
synchronized中文意思是同步也称之为“同步锁”。 synchronized的作用是保证在同一时刻 被修饰的代码块或方法只会有一个线程执行以达到保证并发安全的效果。 Synchronized修饰一个方法很简单就是在方法的前面加synchronizedsynchronized修饰方法和修饰一个代码块类似只是作用范围不一样修饰代码块是大括号括起来的范围而修饰方法范围是整个函数。 方式1同步方法 public synchronized void method() { // todo } 方式2 同步代码块 public void method() { synchronized(this) { // todo } }