1 半知菌

尚未进行身份认证

一位java攻城师

等级
TA的排名 19w+

面试重点汇总

文章目录Hashcode()Hashmap集合框架未完待续...敬请期待?一波关注-.-Hashcode()1.hashcode值从何来:通过hash函数/算法求得hash值,该值在hash表中的位置就是hashcode;2.hashcode的用途hashcode主要为了查找的快捷性,hashcode是用来确定散列存储结构中对象的地址;3.hashcode与equals两点:(1)e...

2020-02-17 23:22:56

Java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

Java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed原因与解决办法原因:当在doget()方法中调用dopost()方法,并在dopost方法中调用resp.sendRedirect();解决办法:1.将跳转放在doget()方法中;2.在resp...

2020-02-17 13:07:59

线程池模型实现

代码中附注解public class MyThreadpool { private static class Worker extends Thread{ //创建队列存放线程 private BlockingQueue<Runnable> queue = null; //工作类构造方法传入线程队列 Worker...

2020-02-15 13:03:00

cookie和session的区别

cookie和session的区别1.cookie是客户端上的,seession是服务端上的,2.cookie是可以永久保存的,当浏览器访问服务端时会在本地寻找cookie文件,如果有则将该文件保存的用户名,密码,设置等信息发送至服务端,服务端将会解析cookie查找session id。3.cookie可以设置失效时间,如果不设置一般是浏览器关闭时失效,session是浏览器关闭时失效,当...

2020-02-15 11:50:42

定时器(闹钟)设计

1.创建MyTimerTask类,定义两个变量,运行时间runAtTime和任务target;2.构造方法中初始化时间和任务,时间为传入时间参数+系统当前时间;3.复写Comparable比较执行时间的优先级;private static class MyTimerTask implements Comparable<MyTimerTask>{ long runAtTim...

2020-02-10 17:34:13

生产者消费者模型

首先实现一个队列public class ArrayQueue { private int[] array = new int[10]; private int size = 0; private int front = 0; private int rear = 0; public void put(int val){ if(size ...

2020-02-09 22:18:54

优先级队列(大堆的实现)

优先级队列的基本实现(大堆)public class ProiorityQueue { private int[] array = new int[10]; private int size = 0; //向上调整 private void adjustUp(){ int index = size; while (index != ...

2020-02-09 14:04:41

wait()、notify和notifyAll

基本用法1.object.wait();等待object被唤醒2.object.notify();随机唤醒一个等待object的线程3.object.notifyAll();唤醒所有等待object的线程4.使用wait()方法会抛出InterruptedException5.使用这三个方法需要在外部对object对象加锁否则会抛出IllegalMonitorStateException...

2020-02-09 10:57:21

线程vs进程

区别1:进程是资源分配的最小单位。线程是cup调度的最小单位,对于系统开销来说,线程比进程的开销小。区别2:一个程序可以有多个进程,一个进程可以有多个线程。区别三:进程间资源独立,一个进程的多个线程之间共享该进程的资源。区别四:线程不能独立运行必须依赖于进程和应用程序的调用。区别五:进程会由系统分配地址空间,而线程没有独立的地址空间,共享所属进程的地址空间。...

2020-02-09 10:36:55

switch语句的判断类型

short、int、char、byte、String

2020-02-06 17:26:03

单例模式(饿汉模式、懒汉模式)

单例模式:当只需要用到类的一个实例对象时,我们需要用单例模式来设计类;有以下两种方法:饿汉模式class Singleton { private Singleton(){} private static Singleton instance = new Singleton(); public static Singleton getInstance(){ ...

2020-02-06 15:55:49

interrupt()、isInterrupted()、Thread.interrupted()

普通方法:线程A调用B.interrupt()通知B线程停止情况一:如果B线程正在休眠(sleep/wait/join),会受到InterruptedException异常,状态位保持false;情况二:如果B线程没有休眠,状态改为true;isInterrupted()和静态方法Thread.interrupted()线程可以通过普通方法:isInterrupted()和静态方法Thre...

2020-01-30 11:05:58

Thread的方法,属性

创建一个指定名字的线程若不指定名字,JVM会给定一个名字;private static class MyRunnable implements Runnable{ @Override public void run() { while (true) { try { Thread.sleep(1000); ...

2020-01-30 10:13:51

方法覆写的五个相同

1.方法名相同2.参数列表相同3.返回值类型"相同"(也可不同)返回值类型可为父类方法返回类型的子类4.访问限定符相同(也可大)可以大,不能5.声明抛出的异常列表要相同抛出的异常也可为父类抛出异常的子类异常;//创建Animal类class Animal {}//创建Bird类并继承Animalclass Bird extends Animal{}//创建AnlimalEx...

2020-01-30 09:11:28

几种常见的创建线程的方式

1.继承Thread方法,并覆写run方法;private static class MyThread extends Thread{ @Override public void run() { System.out.println("继承线程类"); }}//创建并启动MyThread myThread = new MyThread();myTh...

2020-01-30 08:53:06

线程有哪些状态?如何转换?

线程状态NEW: 当创建一个新线程时,为NEW状态RUNNABLE:调用start()后WAITING:使用wait()方法BLOCKED:该线程等待另一个线程释放资源时,处于阻塞状态TIMEWAITING:调用sleep()方法TERMINATED:当线程结束(run()方法结束);...

2020-01-26 22:17:08

端口号、UDP与TCP

概念1.端口号指定了某个程序,即一个端口号bind一个进程,而一个进程可bind多个端口号2.ip:一个ip确定网络上的一台主机,127.0.0.1表示本机ip;ip有ipv4和ipv6,ipv6为国家现普及的。3.端口号划分:端口号占两个字节,16位;11023为Http,FTP,SSH等知名应用层协议,如HTTP为80端口,HTTPS为443端口,102365535为操作系统能动态划分...

2020-01-09 15:59:01

三次握手与四次挥手

一大### TCP的连接管理机制在正常情况下TCP要进行三次握手建立连接,四次挥手断开连接;三次挥手建立连接CLOSE:服务器关闭状态LISTEN:监听状态SYN_SENT:发送SYN_RCVD:监听到连接请求,将该连接放到内核等待队列,再向对方发送确认SYN确认报文ESTABLISHED:接受到对方发送的确认报文,就可以读写数据了;...

2020-01-09 15:57:36

自动拆/装箱与手动拆/装箱的具体实现

自动装箱Integer n = 10;自动拆箱Integer n = 10;int m = n;//自动拆箱手动装箱int n = 10;Integer m = Integer.valueOf(n);手动拆箱Integer m = Integer.valueOf(10);int n = m.intValue();面试题Integer a = 128;Integer b =...

2019-11-13 21:12:23

为何用泛型?java

泛型的引入如果我们要写一个顺序表,并在其中存储objct元素,之后进行类型转换时就会出现运行时错误MyArraylist books = new MyArraylist();books.add(1);books.add("baby");books.add('c');String str = (String)books.get(2);//运行时出现错误这时我们使用泛型...

2019-11-12 15:02:08

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。