Advertisement

javaSE知识点

阅读量:

1. 类与对象
类是一种抽象概念,其定义中包含一致的行为与特征
所有对象都是真实存在的事物,并且每个对象都具有一组行为与特征
类别代表不同对象的一般性定义
每个实例化后的对象都是特定类别中的典型代表

2. 方法调用的两种情况
此类方法调用采用this关键字
其他类别中的方法被调用

3.方法的语法
public int show(int num){
有参构造 有返回值类型
return num;
}

4.成员变量和局部变量的区别
成员变量是类中全局存在的数据和行为,在该方法内部,则会被声明为局部变量。

5.调用有参数的方法时注意

注意传递参数
参数类型
参数个数
参数顺序

在java.lang包中初始化时有两种方式创建字符串对象。一旦初始化后,字符串对象的值无法更改。直接声明变量赋值: String s = "hello";通过new关键字声明变量赋值: String s1 = new String(s);

7.String 类的常用方法并说明方法的功能

字符串的长度 length();
截取字符 substring
字符串连接 concat
消除两边空格 trim
转小写 tolowercase
转大写 toupplercase
不区分大小写 Equalsignarecase
从做到右查找位置 找到一个就返回
indexof()查找字符指定位置返回
indexof()()通过括号2位置开始查找查找字符串
查找字符串
lastindexof
转换字符串类型 String.valueof
replace 替换
charAT获取指定的字符
TocharArray将字符转换字符数组

8.String 与 StringBuffer、StringBuilder 的对比分析

位于java.lang包中的StringBuffer类具有以下创建方法:初始化一个空字符串缓冲区:new StringBuffer();初始化包含指定字符串内容的缓冲区:new StringBuffer("abc");

10.面向对象的三大特征
封装:通过将数据与操作封装在一起的方式实现信息隐藏功能,在不泄露内部细节的情况下对外提供限定接口以访问属性和方法 从而实现了程序的安全性
继承:如果一个类型具有 is-a 的关系 那么这个类型就是父类 子类继承了父类的所有属性与方法 并在此基础上增加了自己的功能 这种机制实现了代码的复用与简化
多态:通过接口指向实现类实例的方式使得同一接口能够调用不同具体实现的方法 进而根据具体情况获得不同的处理结果 该机制不仅减少了重复代码编写还提高了系统的扩展性

请阐述封装的具体实现方法,请详细描述以下步骤:

  1. 添加系统提供的set与get方法
  2. 建立字段声明:private String name;
  3. 编写获取方法:public String getname()返回当前字段值
  4. 编写设置方法:public void setname(String name)设置字段值

12.java中有哪些访问修饰符?

13. 这个关键字有什么作用?它能调用什么呢?
这个关键字主要用来区分局部变量与成员变量,并且在某些情况下还可以调用相关的方法与属性。

14. super 关键字的作用是什么?它能调用哪些内容吗?
super 关键字用于引用父类
能够访问并使用父类的所有构造方法和属性。如果实际使用了一个方法,则必须将其代码编写在相应的方法体定义的第一行。

15.构造方法的定义
方法名和类名相同 与返回值无关 参数列表--不同

16. 如何使用构建函数?构建函数能否实现多态性?能否重新定义?
通过实例的方法引用机制即可完成对本类构建函数的调用操作。
通过继承的方式即可完成对父类构建函数的调用操作。
所有构建函数均可实现多态性功能,并且无法重新定义。

17. Method Overloading Definition Within the same class, method names and class names are identical, but their parameter lists differ, and they are independent of return values.

在父子类关系场景中进行方法重写时需要遵循以下规则:首先确保子代与父代的方法名称参数列表以及返回值类型保持一致;其次规定子代的方法可见性不能超越其父代的可见性限制

19.如何实现继承
首先判断对象是否为实例类型的指针
子类能够继承父类的属性和方法
关键字 extends 是 Java 中定义的一种单继承机制;单 inheritance 特性规定一个 parent 类只能有一个 direct child 类
一个 parent 类可以允许多个 child 类存在;而 child 类无法继承 parent 类中 non-private 的 attribute 和 constructor 方法

20. object 类的特征及其常用操作
object 作为所有类的基础类
其默认值指向内存地址 但在创建对象后 系统会默认调用 tostring 方法
equals 方法用于比较对象的内存地址 如果 string 类重写了 equals 方法 那么其比较结果将基于内存地址进行

21. 继承与构造 定义子类及其父类的构造函数 随后会依次调用子类的方法 确保在构建复杂对象时能够正确继承属性与行为 默认情况下会调用父类的构造函数

22.多态的定义
对象所展现的各种形态即为多态性现象,在程序设计中表现为通过引用指向子类类型实例的方式实现了对父类功能的调用
接口类型则通过指针或引用指向实现该接口的对象

23.实现多态的两种方式
父类指向子类类型的实例
接口指向实现类的实例

24.多态的应用
将大类型作为返回值
public car show(){

}
将参数作为大类型
public void show(car c)
{
}
25. instanceof 关键字 运算符

用于比较类型是否相同,如果相同 返回true 否则false

分析抽象类与抽象方法的基本特性:1. 抽象类本身无法构造具体的对象实例2. 抽象类可作为公共基础帮助子类实现具体构造3. 抽象类别支持嵌入多个不同类型的成员函数:其中包括4. 抽象方法、普通方法、构造函数以及属性等元素5. 所有 abstract 方法必须声明于 abstract 类别中;6. 在 abstract 类别中定义的方法均不具有体定义部分(method body);7. 同样可以在 abstract 类中不包含任何 abstract 方法

27. 接口的特点
接口无法实例化,并可作引用使用。
所有 interface 都只能定义 abstract 方法。
一个 interface 可以继承自多个 parent interfaces,并用逗号分隔来表示继承关系。
如果实现 class 是 concrete 类,则必须重载 parent interface 的 abstract methods;如果实现 class 本身也是 abstract class,则可省略此步骤。
实现 interface 可以同时是多个 interfaces 的组合体。

28. static 关键字可用于修饰哪些内容及其特性?
static 关键字可修饰属性、方法以及代码块。其特点在于被 static 标记的属性属于类属性、而方法则是类方法。在类加载过程中会被调用。可以通过类名称直接访问该功能或通过对象进行访问。需要注意的是,在该函数体内无法定义静态变量。

29.静态方法中是否可一直接调用非静态方法?

是否可以直接调用静态方法?
static对象不能直接访问非静止成员。若需使用则需先创建实例对象。
非静态成员(包括字段)可以通过实例访问对应的方法和属性。
通过访问static变量即可实现相应的功能。

30.final关键字可用于哪些类型?其特点在于
final可用于修饰变量、方法以及类。
当final用于修饰时……的变量被称为常量。
一旦成为常量……其值无法被修改。
经过final修饰后的类无法进行继承操作。
经过final修饰的方法无法被重新编写。

31.如何声明一个常量
public static final double PI=3.14;

32.总结修饰符
访问权限修饰符 static final abstract
static 可以修饰属性 可以修饰方法,修饰代码宽
随着类的加载而加载
可以通过类名自接调用
final 可以修饰变量 修饰类 修饰方法
修饰的变量为常量 值不能被改
类不能被继承
方法不能被重写
abstract 修饰的是抽象类 或抽象方法
抽象方法必须写在 接口或者是抽象类
private 本类
缺省的 本类 子类
protectde 本类 子类 本包
public 本类 子类 本包 其他包

33.为什么要使用异常处理
为了程序出现异常时不终止,能够继续运行

34.java中如何实现异常处理?
系统提供了 五个异常机制
五个关键字
try catch finally throw throws
try放可能会发生的异常 catch 捕获异常 finally有没有异常都会执行的
throws 是声明异常
throw 是异常对象
35.异常处理的两种方式
throws 是声明异常在方法的括号后面写异常类型
throw 是异常对象
new throw 异常类型 与方法搭配使用
36.finally 语句的作用 fianlly 的语句什么情况下不会被执行
finally 一般搭配 try catch 使用
finally 如果执行了 system.exit(1) 那么会停止
37.final 和finally finalze 的区别
final 可以修饰变量修饰类修饰方法
finally 异常的关键字
finalze 是object类所提共的方法 ,finalze 是垃圾自动回收机制 ,回收垃圾时会自动调用finalze

38.Error与Exception的区别
在编译阶段出现的问题属于无法由JVM处理的情况。
异常是我们能够自行处理的一类问题。
两者都继承自Throwable这个公共类。

39.列举几个运行时的异常

列出几种常见的checked异常类型

41.java中所有异常的父类是
throwable

42.throw与throws的区别在于...
throw方法会触发并传递异常信息,在程序流程中常见于处理程序中断断点或其他需要立即响应的情况。
当使用throws关键字定义一个方法时,则表明该方法会指定一种或多种可能的例外类型,并要求程序在发生此类错误时主动进行处理。

43.java中的常用集合框架级各自的特点
collection 是list 和set 的父接口
list 长度可变 有序的 值可以重复
set 长度可变 是无序的 值不可以重复
map 长度可变采用key values 键值对方式进行存储 key 值不可以重复,values 值可以重复
44.集合的实现类
list Arraylist 采用线性列表方式存储,有序的 ,获取元素,遍历元素效率高 线程不安全
linkedlist 采用链表方式进行存储,有序的,添加删除元素效率高 线程安全
map hashmap 采用哈希表方式进行存储 ,key和vlaues 允许放null值
线程不安全
hashtable 不允许放null 值
haspset 采用哈希表方式存储数据,无序的可以存放null值
treeset 采用树形方式存储数据,内部有排序 ,不可以存放null值

如何遍历集合45.如何遍历集合
遍历集合共有三种主要途径
利用列表对象时可采用增强功能下的for循环机制处理元素
对于set对象同样适用该机制以完成迭代操作
通过map函数也能实现类似效果

数据结构中的列表、集合与映射如何存储值

数组列表的add()方法用于向列表添加元素

链表的addFirst()方法在头部插入元素,而addLast()方法则在尾部插入元素

集合的add()方法用于将指定元素加入集合

映射表的put(key, value)方法用于将键与特定的值关联起来

数组、字符串、集合如何实现获取元素个数?数组有length属性、字符串有length函数、集合有size()方法可以用来获取元素数量

在Java中使用一个变量来存储多个值的方法是什么?数组的特点是其长度是固定的,在声明时需要明确指定其大小,并且只能存储相同类型的元素。而集合则具有可变的长度,在声明时不需要预先指定大小,并且能够容纳不同类型的数据。然而,在实际应用中我们通常不会这样做

  1. 为什么选择集合类型? 如何操作集合类型?能够让集合类型实现统一的安全性,并能够提供一致的安全特性。无需进行强制转换的操作即可完成数据管理功能。其中涉及的C#语法糖形式如list《String》等需特别注意处理方式。

50.如何判断一个集合中是否有数据
集合 .size!=0 有数据
.isempty()false

51.迭代器作用 如何使用常用方法
list set map

iterator;
iteratee();
hasNext();
next();
52、Collection 和 collections的区别
collection is the parent interface of list and set;
collections can directly call static methods.

该类可通过名称直接调用
使用 collections.sort() 对 list 集合从小到大排序
通过 collections.reverse 来翻转数据
使用 collections.fill 来对 list 集合的数据赋值
collections.max() 可用于获取集合中的最大值
collections.copy() 可将集合复制到 list1 中

50.file类的常用方法

基于51.io框架的流进行分类讨论时涉及的基础类有输入flow、输出flow以及字节级别的基础层(inputstream和outputstream)提供数据传输接口。其中输入flow中的reader类型用于读取数据输出到指定位置;输出flow中的writer类型负责写入数据;字符级别的处理能够提高读写字符串时的中文处理效率;此外基础层还提供Reader和Writer接口以支持数据传输操作,并且所有这些基础类都是抽象类不能被实例化。

52。常见数据流的子类
字节输入流 fileinputstream 字节输出流 fileoutputstream
数据输入流 datainput stream 数据输出流 data output stream
对象输入设备 object input device 对象输出设备 object output device
字符输出设备 filewriter 字符输入设备 filereader
缓冲器 writer 和 buffer reader 必须配合使用

如何实现文件的复制

54. 配备缓冲机制
该装置通过配备缓冲机制来加快字符读取速度
采用专有方法调用readline()处理换行符
55. 实现文件追加功能
文件输出流 fos 初始化为new fileoutputstream("d:\a.txt", true)

56. 字节流与字符流的区别
操作单元不同:字节流直接操作字节;字符流则直接操作字符;字节流支持8位通用的字节操作;字符流则是基于16位编码的字符处理。
57. 如何在内部类中获取外部类中的对象
外部类名.this字段即可实现对外部对象的引用。
58. 匿名内部类用于启动线程的方式
创建线程的方式如下:
new thread() {
public void run() {
// 线程体代码
}
}

}.start
58.进程与线程
进程 是当一个程序运行就会产生一个进程
线程 是运行任务,线程是进程的内部的一个单元
同一个进程 至少有一个线程运行 可以理解为线程小于进程 进程包含线程
59.什么是多线程
在一个进程中同时运行了多个线程那么就是多线程
一个进程由多个线程组成
60.java中如何实现多线程
1继承thread类
重写run方法
2实现ruanable 接口
重写run方法
61.如何启动线程
线程对象调用start方法启动线程
62.线程的状态 生命周期
从出生到死亡整个过程
创建状态 创建线程对象
就绪状态 调用start 方法
运行状态 获取资源 执行 run方法
阻塞状态 调用sleep join
销毁状态 自动销毁
63.sleep 方法的作用
sleep 是休眠
本线程进入休眠状态 sleep(1000)==1秒

64. sleep yeild join 方法对比
Sleep 和 Join 都会陷入阻塞状态。
在执行当前线程时会优先运行其他线程。
yeild 是一种礼让机制,在使用此机制时会优先让行更高优先级的任务。
但并非总是如此。

65。为什么使用同步技术
多个线程共同共享资源 将引发数据不安全的问题

66.如何实现线程的同步
1同步代码kuan
synchronized(this){

}
2 同步方法
public synchronized返回值类型 方法名(){
}
是声明的一个锁
当线程进入同步方法 或代码块时 上锁
别的线程会先等待 当前上锁的线程
从而实现了共享数据的安全

In the 67.java system, the class is thread-safe, and the thread is thread-insecure.
A vector is equivalent to an ArrayList.
A StringBuffer is equivalent to a StringBulider.
A Hashtable is equivalent to a HashMap.
Low efficiency versus high efficiency.

68.java 中的包装类
将本类型的数值转换为对象形式
每个包装类都属于java.lang包
所有这些类型的实例均为不可变对象,并且无法继承其他子类型
八位、短整数、长整数等

69.如何实现对包装类的作用? 包装类提供了实现方式,在存储过程中不允许将基础数据放入集合中,并且在存储数据时需要以包装类的形式进行处理以确保数据完整性

集装过程:将基本类型的物品对应至包装类的类型;卸载过程:将包装类的类型映射至基本类型的数值数据

71.java 中获取随机数
math。random 随机数
random r=new random()
r.next(种子数);

import java.util.calendar;import java.text.simpledateformat;import java.util.UTCDatetimeFormat;

73. tcp udp 协议的区别
tcp是一种面向连接的协议,在传输数据之前需要建立一个 tcp 连接。这个过程通常涉及三次握手以完成通信初始化。
udp则是一种面向无连接的协议,在不需建立任何连接的情况下即可立即传输数据。它通常一次只传输少量的数据,并且由于缺乏额外的确认机制和重传功能,在可靠性上不如 tcp 。

74.单例模式 工厂模式

在一个类中仅有一个实例

单例模式主要包含两种实现方式

  1. 饿汉式

private static Dan a = new Dan();

public virtual Dan() { }

  1. 懒汉式

static public Dan GetDan() { }

private Dan a = null;
private no-arg constructor Dan {}
public Dan getDan() {
if (a == null) {
a = new Dan();
}
}

该方法返回指定类型的对象。
该方法采用多态实现方式,并以大类别的对象作为其返回值。
指定的大类别对象被选作返回值。
静态方法名为da的定义如下:
字段a初始化为null对象。
如果参数b等于1,则进入以下情况:
创建并赋值给字段a一个新的子类实例。
否则如果参数b等于2,则进入以下情况:
字段a被赋值为特定子类实例。
该字段即被赋值并返回。

全部评论 (0)

还没有任何评论哟~