- 博客(202)
- 收藏
- 关注
原创 java基础面试题,kafka入门
一个线程运行时发生异常会怎样?这是我在一次面试中遇到的一个很刁钻的Java面试题, 简单的说,如果异常没有被捕获该线程将会停止执行。Thread.UncaughtExceptionHandler是用于处理未捕获异常造成线程突然中断情况的一个内嵌接口。当一个未捕获异常将造成线程中断的时候JVM会使用Thread.getUncaughtExceptionHandler()来查询线程的UncaughtExceptionHandler并将线程和异常作为参数传递给handler的uncaughtExceptio.
2021-12-31 10:41:00
337
原创 Java基础23 Socket手撸应用服务器,上海大厂Java面试经历
创建方法:new Socket(“IP地址”,端口号)注意:一旦创建了Socket对象,就自动连接对方计算机常用方法:getInputStream() 获得输入流,读取对方发来的数据getOutputStream() 获得输出流,给对方发数据close() 关闭注意:一旦输入流或输出流关闭,Socket连接会自动关闭。ServerSocket服务器端Socket,Socket的子类,用于接受客户端并和客户端通信创建:new ServerSocket(端口号)注意:一
2021-12-31 10:38:31
331
原创 Java基础 - 网络编程,三要素(IP、端口号,mybatis插件运行原理
为计算机网络中进行数据交换而建立的规则、标准或约定的集合。UDP* 用户数据报协议(User Datagram Protocol)面向无连接,数据不安全,速度快。不区分客户端与服务端。TCP* 传输控制协议(Transmission Control Protocol)* 面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。三次握手: 客户端先向服务端发起请求, 服务端响应请求, 传输数据5.Socket通信原理图解(了解)A:Socket套接字概述..
2021-12-31 10:37:18
399
原创 Java基础09 面向对象~类和对象,springcloud实战
方法是如何定义的?public 返回值类型 方法名(类型 参数,…){方法体;}创建对象的语法是?类名 对象名 = new 类名();如何调用对象的属性和方法?对象名.属性 = 值;对象名.方法(参数);案例:定义LOL英雄类。属性:名字、血量、蓝量、攻击力方法:移动、回城public class Hero {//名字String name;//血量int hp;//蓝量int mp;//攻击力int attack;/**移动*/public void
2021-12-30 12:35:34
481
原创 Java基础 - 单列集合,ArrayList,Vector,如何做到操作系统和并发同步结合
System.out.println(s.getName() + “,” + s.getAge());}3.Collection集合的带All功能测试A:案例演示带All的功能演示boolean addAll(Collection c)boolean removeAll(Collection c)boolean containsAll(Collection c)boolean retainAll(Collection c)4.集合的遍历之迭代器遍历A:迭代器概述集合是用来存
2021-12-30 12:34:39
128
原创 Java基础 - LinkedList,泛型(接口,通配符),linux技术网站
* 因为泛型其实只是在编译器中实现的而虚拟机并不认识泛型,所以要在虚拟机中将泛型类型进行擦除。也就是说,在编译阶段使用泛型,运行阶段取消泛型,即擦除。擦除是将泛型类型以其父类代替,如String变成了Object等。其实在使用的时候还是进行带强制类型的转化,只不过这是比较安全的转换,因为在编译阶段已经确保了数据的一致性。5.ArrayList存储字符串和自定义对象并遍历泛型版(掌握)A:案例演示ArrayList存储字符串并遍历泛型版6.泛型的由来(了解)A:
2021-12-30 12:33:43
150
原创 Java反序列化之ysoserial URLDNS模块分析,java迭代器实现原理
由于HashMap中重写了writeObject方法,因此在进行序列化操作时,执行的序列化方法是HashMap中的writeObject方法,具体如下:先执行默认的序列化操作:接着 遍历HashMap,对HashMap中的key,value进行序列化。综上所述,梳理下ysoserial payload,URLDNS 序列化的整个过程:首先 ysoserial 通过反射的方式,根据全限定类名 ysoserial.payloads.URLDNS ,获取对应的Class类对象,
2021-12-30 12:32:48
238
原创 Java匹马行天下之一顿操作猛如虎,框架作用知多少?,3轮技术面和1轮Hr面拿下offer
SpringSpring框架大家都听过吧,这个框架特别重要,在目前整个市场上来看的话是基本上有一个一统江湖的趋势。Spring是整个Java体系里使用频率最高,稳定性最好,而且在各个领域都能遇到的一个框架。那什么是Spring呢?其实你可以把Spring理解为一个管家,如果我们不用Spring的话,我们之前写的代码实际上是杂乱无章的,这一块,那一块,然后用各种各样的关联关系把它们绑在一起,整个项目是杂乱无章的,那么我们用了Spring之后,它就把每个区域的代码进行分离,自己是自己的,然后由Spring在中
2021-12-30 12:31:53
302
原创 Java书城项目第四阶段:图书模块,java入门编程题目
return update(sql, id);}@Overridepublic int updateBook(Book book) {String sql = “update book set name=?,author=?,price=?,sales=?,stock=?,img_path=? where id = ?”;return update(sql, book.getName(), book.getAuthor(), book.getPrice(), book.getSales(), bo
2021-12-30 12:30:58
421
原创 Java并发之Condition详解,从JDK源码学习Hashmap
} catch (Exception e) {} finally {readLock.unlock();}}/**唤起线程*/public void conditionSignal() {readLock.lock();try {//睡眠5s 线程1启动Thread.sleep(5000);System.out.println(Thread.currentThread().getName() + “拿到锁了”);condition.signal();System.out.p
2021-12-29 13:36:16
136
原创 Java常用类使用总结,跟谁学java技术面试
hashCode()hashCode() 方法用于获取对象的 hash 值。hashCode() 方法用于哈希查找,可以减少在查找中使用 equals() 的次数,重写了equals方法一般都要重写 hashCode() 方法。这个方法在一些具有哈希功能的 Collection 中用到。import java.util.ArrayList;public class Test {public static void main(String[] args) {Object obj1 = new Ob
2021-12-29 13:35:16
118
原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题,完爆面试官
mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。MyBatis 支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJO映射成数据库中的记录。追问1:说一下
2021-12-29 13:34:19
1281
原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题(1),开发者必备的顶级Java开发工具
面试题3:介意加班么?==========================================================================我:给加班费么?我:按法律规定1.5倍么?我:有加班餐么?面试官:懦夫三连?兄弟你的戏有点多啊。追问1:介意996么?我:能给我996的待遇吗?面试官:不能,不可以,别乱说!追问2:介意出差么?我:你tm的 莽夫三问??面试题4(华为面试题):一头牛重 800 千克,但前面一座桥承重 700 千克,问牛怎么过桥
2021-12-29 13:31:43
6496
原创 java基础知识点,面试初级java工程师问题
五、集合通常情况下解决一个问题可能需要多个对象,也无法确切的知道要申请多大的内存空间,这时我们可以建一个新的对象,囊括你所需要的一切,这个新对象就称为集合。Java中最重要的集合有list、map、set、queue、tree、stack等。常用集合的分类:Collection 接口的接口 对象的集合(单列集合)├——-List 接口:元素按进入先后有序保存,可重复│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全│—————-├ ArrayL
2021-12-29 13:27:06
153
原创 Java基础19 IO基础,漫谈MySQL权限安全
所有字节输入流的父类是InputStream所有字符输入流的父类是Reader输出流从Java程序流向磁盘文件或网络,用于写入数据所有字节输出流的父类是OutputStream所有字符输出流的父类是Writer文件读写==================================================================文件读取文件输入流 FileInputStream作用是:读取磁盘文件或网络的数据构造方法:FileInpu..
2021-12-29 13:25:51
99
原创 Java反射,linux架构设计
通过反射,Java 代码可以发现有关已加载类的字段,方法和构造函数的信息,并可以在安全限制内对这些字段,方法和构造函数进行操作。很多人都认为反射在实际Java中开发应用中并不广泛,其实不然。当我们在使用 IDE(如 IDEA/Eclipse)时,当我们输入一个对象或者类并调用它的属性和方法时,一按 (“.”)点号,编译器就会自动列出她的属性或方法,这里就会用到反射。反射最重要的用途就是开发各种通用框架很多框架(比如 Spring)都是配置化的(比如Spring 通过 XML 配置模式装载 Bean),
2021-12-28 12:14:20
136
原创 Java匹马行天下之一顿操作猛如虎,框架作用知多少?,java基础案例教程第二版
框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了。所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发。SpringSpring框架大家都听过吧,这个框架特别重要,在目前整个市场上来看的话是基本上有一个一统江湖的趋势。Spring是整个Java体系里使用频率最高,稳定性最好,而且在各个领域都能遇到的一个框架。那什么是Spring呢?其实你可以把Spring理解为一个管家,如果我们不用Spring的话,我们之前写的代码实际上
2021-12-28 12:13:21
119
原创 Java利用UDP协议建立广播组通信【附通信源码】,BAT大厂面试总结
在这里需要注意的一点是:DatagramPacket类的receive()方法开始接收数据时,如果还没有可以接收的数据,在正常情况下DatagramPacket类的receive()方法将会阻塞,一直等到网络上有数据传来,receive()方法接收该数据并返回,如果网络上没有一个数据传来,receive()方法也没有阻塞,肯定是程序有问题,一般是使用了一个已经被占用的端口。接下来分别说明一下在进行UDP协议传输时,常用的两个类:DatagramPacket类===============Datag
2021-12-28 12:12:24
123
原创 Java中高级核心知识全面解析——MySQL(全网最全数据库命令合集
此时需要检测一个从表的外键需要约束为主表的已存在的值。外键在没有关联的情况下,可以设置为 null.前提是该外键列,没有not null。可以不指定主表记录更改或更新时的动作,那么此时主表的操作被拒绝。如果指定了 on update 或 on delete:在删除或更新时,有如下几个操作可以选择:cascade,级联操作。主表数据被更新(主键值更新),从表也被更新(外键值更新)。主表记录被 删除,从表相关记录也被删除。set null,设置为null。主表数据被更新(主键值更新),从表的外键被设置
2021-12-28 12:11:11
159
原创 Java中高级核心知识全面解析——MySQL(全网最全数据库命令合集(1)
tinyblob, blob, mediumblob, longblobtext 非二进制字符串(字符字符串)tinytext, text, mediumtext, longtexttext 在定义时,不需要定义长度,也不会计算总长度。text 类型在定义时,不可给default值– c. binary, varbinary ----------类似于char和varchar,用于保存二进制字符串,也就是保存字节字符串而非字符字符串。char, varchar, text 对应 binary,
2021-12-28 12:09:48
223
原创 Java中的垃圾收集(JVM),mongodb入门经典pdf
程序的任何部分不再引用未使用的对象或未引用的对象。所以未引用对象使用的内存可以通过执行垃圾回收来回收。内存的分配可以在3个基本程序:标记正常缺失紧致删除标识-识别正在使用的、不是由垃圾收集器使用的内存块的过程,这是第一步。正常删除-删除未引用对象的过程,将引用对象和指针保留到空闲空间。使用压缩删除-除了删除未引用的对象,它还将压缩其余的引用对象,方法是将对象移动到一起,以使新的内存分配更容易,速度更快。JVM堆存储器============================
2021-12-28 12:07:29
121
原创 JavaWeb学习总结18--redis学习,阿里、百度、美团、携程、蚂蚁面经分享
• 分布式集群架构中的session分离2. Redis下载安装官网:https://redis.io中文网:http://www.redis.net.cn/解压直接可以使用:链接:https://pan.baidu.com/s/1-p_s4W20B8n0C_IwGXeXIw提取码:300bredis.windows.conf:配置文件redis-cli.exe:redis的客户端redis-server.exe:redis服务器端3. Redis命令操作red
2021-12-28 12:06:20
139
原创 Java 里面的异常,java开发视频直播服务
fileReader = new FileReader(file);// 读入数据char[] chars = new char[5];int length;while ((length = fileReader.read(chars)) != -1) {String s = new String(chars, 0, length);System.out.println(s);}} catch (IOException e) {e.printStackTrace();} finally
2021-12-28 12:05:11
105
原创 JAVA 线程池原理,java常见数据结构与算法面试题
其中AtomicInteger变量ctl的功能非常强大:利用低29位表示线程池中线程数,通过高3位表示线程池的运行状态:RUNNING:-1 << COUNT_BITS,即高3位为111,该状态的线程池会接收新任务,并处理阻塞队列中的任务;SHUTDOWN: 0 << COUNT_BITS,即高3位为000,该状态的线程池不会接收新任务,但会处理阻塞队列中的任务;STOP : 1 << COUNT_BITS,即高3位为001,该状态的线程不会接收新任务,也不会处理
2021-12-28 12:03:57
119
原创 Java三大特性详解--封装,rabbitmq消费者监听原理
}public void setParentsPO(ParentsPO parentsPO) {this.parentsPO = parentsPO;}}上面是personPO.java 类,用来封装好了人这个对象的一些属性,这里顺带提一下,在公中代码的编写习惯很重要,做好做到规范,一般在封装类中的属性都要写注释并且使用/**注释*/这种,只有在方法体中的注释才是 //注释。关于java编写规范的问题我自己还没有整理,不过网上就有很多,自己多注意一下吧,下面这个这个链接就是java规范的问题:ht
2021-12-27 12:08:16
418
原创 JavaWeb快速入门--JSP(1),毕业3年还只会增删改查
通过<%= 代码 %>我们可以将JSP页面中的Java表达式的运算结果以字符串的形式展示(不需要加;)注释语句:<%-- 注释内容--%>在JSP页面中,html注释语句只能注释html代码片段,而JSP注释语句可以对所有代码进行注释。同时用户在客户端式无法看到JSP注释的。JSP中的指令page指令:<%@page 内容 %>page指令用来设置JSP页面的属性,在JSP页面中page指令没有位置于出现次数的限制,一般将其放在页面的顶部,其语法格式如下:&
2021-12-27 12:06:54
89
原创 Java8的这些集合骚操作,你掌握了嘛?,springtoolsuite教程
list.forEach(System.out::println);}Iterator的forEachRemaining=============================java.util.Iterator是用于《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享遍历集合的迭代器,接口定义如下:public interface Iterator {boolea
2021-12-27 12:02:17
112
原创 Java中的ArrayList的初始容量和容量分配,系统学Java从零开始
所以,在已经知道容量大小的情况下,推荐使用下面方式进行声明:List arrayList = new ArrayList(CAPACITY_SIZE);即指定默认容量大小的方式。探索ArrayList自动改变size真相ArrayList的列表对象实质上是存储在一个引用型数组里的,有人认为该数组有“自动增长机制”可以自动改变size大小。正式地说,该数组是无法改变大小的,实际上它只是改变了该引用型数组的指向而已。下面,让我们来看看java是怎样实现ArrayList类的。一、ArrayList类
2021-12-26 12:55:24
546
原创 Java中多线程,zookeeper入门书籍
定义一个类继承 Thread 类重写 run 方法创建子类对象,即创建线程对象调用 star 方法,开启线程并让线程执行,同时还会告诉 JVM 去调用 run 方法自定义线程类:public class myThread extends Thread {//重写run方法,完成该线程执行的逻辑public void run(){for(int i = 0;i < 50;i++){System.out.println(“新线程正在执行” + i);}}}..
2021-12-26 12:53:59
181
原创 JavaWeb之Servlet技术(二),java面试题最新
死亡:当服务停止时,或者服务器宕机时,对象消亡。通过分析Servlet的生命周期我们发现,它的实例化和初始化只会在请求第一次到达Servlet时执行,而销毁只会在Tomcat服务器停止时执行,由此我们得出一个结论,Servlet对象只会创建一次,销毁一次。所以,Servlet对象只有一个实例。如果一个对象实例在应用中是唯一的存在,那么我们就说它是单实例的,即运用了单例模式。1.4.1、启动时创建Servlet我们前面讲解了Servlet的生命周期,Servlet的创建默认情况下是请求第一次到达Serv
2021-12-26 12:52:34
373
原创 JavaSE:第十三章:一分钟了解反射,掌握这6大技能体系
反射就是把java类中的各种成分映射成一个个的Java对象=============================不理解这句话什么意思?没关系,在我百度了几分钟后,找到三种解释:**解释一:**一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。解释二: 说反射先聊聊正射反射机制是不知道类是什么样的,它是根据类的类名,去获取一个实例,然后根据方法名去执行方法。好比说,一般情况下画一只老虎,问我得先知道老虎长什么样子才能画出来;有了反射
2021-12-26 12:51:09
225
原创 JavaMail 之 搜索邮件,flume和kafka面试
SearchTerm notTerm = new NotTerm(new FromStringTerm(“智联招聘”));Message[] messages = folder.search(notTerm);4、搜索周一到今天收到的的所有邮件[java] view plain copyCalendar calendar = Calendar.getInstanc..
2021-12-26 12:49:43
248
原创 JavaArrayList源码分析(含扩容机制重点问题分析),这个回答让我错失offer
public void trimToSize() {modCount++;// 数组容量大于实际元素个数(例如10个元素,却有15个容量)if (size < elementData.length) {// 根据元素实际个数,重新最小化实例容量elementData = (size == 0)? EMPTY_ELEMENTDATAArrays.copyOf(elementData, size);}}2.5 扩容方法===============================
2021-12-26 12:48:18
183
原创 Java 实习生(月薪 3k-5k 水平)应具备哪些知识,分享面试经历的网站
Java 表达式 & 语句 & 代码块Java 注释02、Java 流程控制Java if elseJava switch 语句Java for 循环Java while 循环Java break 语句Java continue 语句03、Java 数组Java 数组多维数组Java 数组复制04、Java 面向对象(1)J《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1
2021-12-26 12:45:27
167
原创 java IO流,java架构师视频推荐
|–FileReaderOutputStreamWriter|–FileWrier想要操作文本文件,必须要进行编码转换,而编码转换动作转换流都完成了。所以操作文件的流对象只要继承自转换流就可以读取一个字符了。但是子类有一个局限性,就是子类中使用的编码是固定的,是本机默认的编码表,对于简体中文版的系统默认码表是GBK。FileReader fr = new FileReader(“a.txt”);InputStreamReader isr = new InputStreamReader(new F
2021-12-26 12:44:02
125
原创 Java基础04 分支语句,软件架构师之路阅读
if语句if-else语句多重if嵌套ifswitch语句if语句==================================================================语法结构:if(条件){语句;}玩游戏时,判断如果对方英雄血量低于100,就过去打他,怎么用程序表示?执行流程:练习1:完成上面的案例int hp = 80;//判断血量是否小于100,就进行攻击if(hp < 100){System.out.pri..
2021-12-25 13:19:27
91
原创 Java基础 - 类的加载,类加载器,反射,springboot教程pdf
创建类的实例访问类的静态变量,或者为静态变量赋值调用类的静态方法使用反射方式来强制创建某个类或接口对应的java.lang.Class对象初始化某个类的子类直接使用java.exe命令来运行某个主类2.类加载器的概述和分类A:类加载器的概述负责将.class文件加载到内存中,并为之生成对应的Class对象。虽然我们不需要关心类加载机制,但是了解这个机制我们就能更好的理解程序的运行。B:类加载器的分类Bootstrap ClassLoader 根..
2021-12-25 13:18:02
140
原创 Java基础 - Eclipse,API,Object常用方法,java面试手写代码
G:取消悬浮提示window – Preferences – Java–Editor–Hovers。右边将Combined Hover勾去掉。这样代码的悬浮框就不会自动出现了。如果想看提示,将光标悬浮在代码上,按F2即可。4.Eclipse中内容辅助键的使用A:Alt+/ 起提示作用B:main+alt+/,syso+alt+/,给出其他提示C:补充输出语句,选中需要输出的部分,alt+/选择最后一项即可C:定义自己的alt + /windows–perf..
2021-12-25 13:16:36
116
原创 Java四种引用类型,互联网分布式系统架构
//创建一个引用,引用可以独立存在,并不一定需要与一个对象关联String s;复制代码通过将这个叫“引用”的标识符指向某个对象,之后便可以通过这个引用来实现操作对象了。String str = new String(“abc”);System.out.println(str.toString());复制代码在 JDK1.2 之前,Java中的定义很传统:如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地址,就称为这块内存代表着一个引用。Java 中的垃圾回收机制在
2021-12-25 13:15:11
103
原创 Java对象的复制四种方式,字节跳动8年老Java面试官经验谈
被复制的类需要实现Clonenable接口(不实现的话在调用clone方法会抛出CloneNotSupportedException异常), 该接口为标记接口(不含任何方法)覆盖clone()方法,访问修饰符设为public。方法中调用super.clone()方法得到需要的复制对象。(native为本地方法)class Student implements Cloneable{private int number;public int getNumber() {return number;}
2021-12-24 12:49:21
363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人