java面试
文章平均质量分 65
我能走到对岸吗
星辰和大海
展开
-
上硅谷mysql笔记基础视频03笔记
原则1 所选择的类型越简单越好,能保存数字的类型越小越好;2 较短的文本: char varchar(M)M:最多的字符数char:固定的长度;varchar:可变的长度;har:性能高:固定使用varchar:变化比较大;节省空间;binary:保存二进制;enum:枚举类型;日期类型date:保存日期没有时间datetime:和date相反;8字节;timestamp:时间戳;市区有影响;约束1一种限制,为了保证表中数据的准确和可靠性;2 防止重复;六大约束not原创 2021-10-10 19:38:40 · 152 阅读 · 0 评论 -
spring事务失效的八种情况
事务失效的原因1 引擎选错,mysalm引擎不支持事务2 没有被 Spring 管理 : 如下面例子所示:// @Servicepublic class OrderServiceImpl implements OrderService {@Transactionalpublic void updateOrder(Order order) {// update order}}如果此时把 @Service 注解注释掉,这个类就不会被加载成一个 Bean,那这个类就不会被 Spring 管原创 2021-09-05 14:13:28 · 414 阅读 · 0 评论 -
mysql不走索引的情况
1 EXPLAIN select * from sys_user where user_id=1 or name=“刘德华”; 不走索引;2 在索引列上使用mysql的内置函数,索引失效。3 对索引列运算(如,+、-、*、/),索引失效4 索引字段上使用(!= 或者 < >,not in)时,可能会导致索引失效。5 索引字段上使用is null, is not null,可能导致索引失效。6 左连接查询或者右连接查询查询关联的字段编码格式不一样,可能导致索引失效7 mysql原创 2021-09-05 14:12:44 · 1395 阅读 · 0 评论 -
线程安全
1 什么是线程安全?“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。目前主流操作系统都是多任务的,即多个进程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问别的进程的,这是由操作系统保障的。在每个进程的内存空间中都会有一块特殊的公共区域,通常称为堆(内存)。进程内的所有线程都可以访问到该区域,这就是造成问题的潜在原因。假设某个线程把数据处理到一半,觉得很累,就去休息了一会,回来准备接着处理,却发现数据已经被修改了,不是自己离开时的样子了。可能被其它原创 2021-09-05 14:04:05 · 70 阅读 · 0 评论 -
java优化
1 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2.尽量避免随意使用静态变量当某个对象被定义为static变量所引用,那么GC通常是不会回收这个对象所占有的内存,如public class A{priva原创 2021-09-05 13:48:12 · 97 阅读 · 0 评论 -
面试高频
1 Java基础知识,如集合类、IO、泛型、等。JVM底层知识,如类加载机制、GC、JVM内存结构等。Java并发编程知识,如Java内存模型、并发包、线程池、netty等。开发框架知识,如Spring、mybatis、docker、springboot、springmvc等。分布式相关知识,如CAP理论、分布式锁、分布式事务、Zookeeper等。其他基础知识,编程语言、网络方面、数据库、数据结构和算法。中间件相关知识,如Redis、rabbitMQ、Dubbo等。服务器相关知识,如tomc原创 2021-09-05 13:47:05 · 84 阅读 · 0 评论 -
如何有效的谈薪资
1 打听工资的范围,心里有数,2 了解同等公司范围的薪资,猎头,熟人,打听公司的缺人的紧急程度,职位的紧急程度,如果紧急可以狮子大开口!!!3 了解他们是否紧急?是否关注你的入职世间,如果多次问你时间,就是紧急4 亮出自己的另一个offer大杀招!另一个offer对少那个!水涨船高,见到更多的offer...原创 2021-09-05 13:46:09 · 121 阅读 · 0 评论 -
牛客网中的构造函数笔记大全
构造器的名字必须和类名相同,而匿名内部类没有类名,所有不可以有构造器1 构造方法不能用对象调用;A:构造方法概述和作用,给对象的数据(属性)进行初始化 B:构造方法格式特点a:方法名与类名相同(大小也要与类名一致)b:没有返回值类型,连void都没有c:没有具体的返回值return;-----重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表,系统默认创造一个无参数的,我们创建系统就不提供了!1 可以重载,和类名相同,this()才是调用构造函数的第一条语句,this是不需要的,原创 2021-09-05 11:46:37 · 60 阅读 · 0 评论 -
jackson常用注解
1 Json解析工具Jackson的注解@JsonIgnoreProperties此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。@JsonIgnore此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。@JsonFormat此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = “yyyy-MM-dd H原创 2021-08-29 13:40:51 · 360 阅读 · 0 评论 -
java序列化
1 Java序列化对于一个存在Java虚拟机中的对象来说,其内部的状态只是保存在内存中。JVM退出之后,内存资源也就被释放,Java对象的内部状态也就丢失了。而在很多情况下,对象内部状态是需要被持久化的,将运行中的对象状态保存下来(最直接的方式就是保存到文件系统中),在需要的时候可以还原,即使是在Java虚拟机退出的情况下。对象序列化机制是Java内建的一种对象持久化方式,可以很容易实现在JVM中的活动对象与字节数组(流)之间进行转换,使用得Java对象可以被存储,可以被网络传输,在网络的一端将对象序原创 2021-08-29 13:40:21 · 245 阅读 · 1 评论 -
java底层
一、底层nativecasconcurrentnative1 Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作。cas2 CAS,Compare and Swap即比较并交换,设计并发算法时常用到的一种技术,java.util.concurrent包全完建立在CAS之上,没有CAS也就没有此包,可见CAS的重要性。当前的处理器基本都支持CAS,只不过不同的厂.原创 2021-08-29 13:39:08 · 369 阅读 · 0 评论 -
牛课网种的jvm笔记
1 jvm1 JVM也就是Java Virtual Machine,即java虚拟机,是在现有的平台上,如Windows,Linux等,运行一个软件,虚拟出一台接口统一的计算机,依次实现java语言的跨平台特性。2 写好的java文件后缀名为xxx.java编译java文件:输入javac xxx.java回车,编译会生成.class文件运行java文件:java xxx.class3 内存回收:JVM一旦启动,就会创建一个守护线程来监测是否需要有对象内存被释放。C、无法直接释放。D、不可以指原创 2021-08-29 13:36:58 · 104 阅读 · 0 评论 -
io和nio
1、IO是面向流的,NIO是面向缓冲区的。2、IO是阻塞的,NIO是非阻塞的。3、NIO有选择器机制,可以让一个线程来监视多个IO通道。NIO的优点:1、不需要使用 read() 或者 write() 就可以处理文件内容。2、NIO的处理效率很快。...原创 2021-08-29 13:34:40 · 115 阅读 · 0 评论 -
java file
1 A.文件分为文本文件和二进制文件,计算机只认识二进制,所以实际上都是二进制的不同解释方式。文本文件是以不同编码格式显示的字符,例如Ascii、Unicode等,window中文本文件的后缀名有".txt",".log",各种编程语言的源码文件等;二进制文件就是用文本文档打开是看不懂乱码,只要能用文本打开的文件都可以算是文本文件,只是显示的结果不是你想要的,二进制文件只有用特殊的应用才能读懂的文件,例如".png",".bmp"等,计算机中大部分的文件还是二进制文件。B.File类是对文件整体或者文件属原创 2021-08-29 13:34:08 · 91 阅读 · 0 评论 -
gc回收
1 gc?2 内存模型?3 负载均衡原理和集群同步回话状态?4 sql如何优化的?5 项目的拼镜可能会是?6 springmv的工作流程?7 rm -i和rm -r的区别?8 String str = new String(“hello”);1 上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在静态存储区。–通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间2 程序中的字面量(litera原创 2021-08-29 13:33:02 · 68 阅读 · 0 评论 -
jvm内存结构
jvm内存结构a)程序计数器(program counter register),一块较小的内存空间,可以看作当前线程所执行的字节码的行号指示器。由于java虚拟机是采用多线程,通过线程切换获得时间片得到cpu的控制权。为了线程切换后能恢复到正确的执行位置。b)虚拟机栈,调用一个方法时会创建一个栈帧,用于存储局部变量、对象引用、方法返回值,每一个方法从调用到执行完成,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。通过 -Xss控制大小,如果线程请求的栈深度大于虚拟机所允许的深度,会抛出StatckOve原创 2021-08-29 13:32:29 · 76 阅读 · 0 评论 -
泛型笔记--面试
question1:请你聊聊泛型,你是怎么看的?answer:A:在没有泛型之前,一旦吧一个对象“丢进”java集合中,集合就会忘记对象的类型,把所有的对象都当成是Object类型处理。当程序从集合中取出对象之后,就要进行强制类型转换,这种强制类型转换不仅代码臃肿还容易引起ClassCastException异常。B:Java引用了“参数化类型(parameterized type)”的概念,允许我们在创建集合是指定集合元素的类型。如List,这表明该List只能保存字符串类型的对象。Java的参数化原创 2021-08-28 23:06:40 · 141 阅读 · 0 评论 -
线程笔记
1.什么是线程,什么是进程,它们有什么区别和联系,一个进程里面是否必须有个线程(先讲进程)进程本质上是一个执行的程序,一个进程可以有多个线程。它允许计算机同时运行两个或多个程序。一个进程至少会有一个线程。线程是进程的最小执行单位。区别:多进程程序不受Java的控制,而多线程则受Java控制。多线程比多进程需要更少的管理费用。2.实现一个线程有哪几种方式,各有什么优缺点,比较常用的是那种,为什么线程有4种实现方式:①.通过继承Thread类,优点:可以直接调用start方法启动。缺点:继承一个类后原创 2021-08-28 23:05:40 · 355 阅读 · 0 评论 -
java this
1 Java中this关键字使用小结:当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。2、使用this来区分当前对象Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象的引用:*1)* 构造方法中指该构造器所创建的新对象;*2)*原创 2021-08-28 23:04:38 · 284 阅读 · 0 评论 -
java 集合
csdn1.ArrayList和LinkList的区别ArrayList(数组结构):优点:get和set调用花费常数时间,也就是查询的速度快;缺点:新项的插入和现有项的删除代价昂贵,也就是添加删除的速度慢LinkedList(链表结构):优点:新项的插入和和现有项的删除开销很小,即添加和删除的速度快缺点:对get和set的调用花费昂贵,不适合做查询2.Collection接口的remove()方法和Iterator接口的remove()方法区别?①性能方面Collection的remo原创 2021-08-28 23:04:09 · 256 阅读 · 0 评论 -
java 异常
1 Java中什么是Exception?这个问题经常在第一次问有关异常的时候或者是面试菜鸟的时候问。我从来没见过面高级或者资深工程师的时候有人问这玩意,但是对于菜鸟,是很愿意问这个的。简单来说,异常是Java传达给你的系统和程序错误的方式。在java中,异常功能是通过实现比如Throwable,Exception,RuntimeException之类的类,然后还有一些处理异常时候的关键字,比如throw,throws,try,catch,finally之类的。 所有的异常都是通过Throwable原创 2021-08-28 23:03:33 · 200 阅读 · 0 评论 -
mysql bug总结
1 1 insert ignore 遇到错误忽略错误,继续执行,不回滚,2 不存在就插入,存在就更新,on duplicate key update ip=values(IP)原创 2021-06-20 23:10:19 · 121 阅读 · 0 评论 -
mybatis-遇到的坑总结
1 根据接口名字查询返回一条数据,如果数据库多条就报错!必须一条结果才会返回结果!2 resultMap:返回字典类型,resultype返回具体的封装类型!!!3 XX.xml文件的头部:"classpath:mybatis-3-mapper.dtd"要添加4 多了日期就报错???5 登录:根据用户名查出用户对象,输出密码和传入的密码比对!6 查看个人信息:登录–id封装在context区域里面;–流程是单独的流程!???7 mybatis:#{id}里面的参数不是任意的!必须是对应的!8原创 2021-06-20 23:09:03 · 413 阅读 · 0 评论 -
java开发低级的错误和核心的知识
1 单元测试的时候,显示:java.lang.Exception: No runnable methods自己没有添加@Test注解!!!2 log4j:日志级别:fatal,error,warn.info.debug,只会输出打印高于和等于级别的日志信息3 控制台不打印sql,配置文件中没有配置mybatis相关的信息4 自动生成test方法,借助intellij插件,等待完成…5 测试类的@Test方法修饰的方法不允许有参数!:ava.lang.Exception: Method userTes原创 2021-06-20 23:07:34 · 114 阅读 · 0 评论 -
java开发遇到的bug总结
1 端口被占用:任务管理器里面–详细信息-javaw解决!1-1 在CMD中输入命令:netstat -ano,第二:查找本地地址对应的pid,第三:CMD中输入命令:taskkill /f /t /im 【pid】2 笔记本的网卡的数量:1:笔记本电脑一般有两块网卡,一个PCI网卡,一个WireLess无线网卡,如果蓝牙也算一块网卡的话,有的笔记本有三块网卡2:当我们安装虚拟机后,会有虚拟网卡,比如安装vmware,自动增加两个虚拟网卡:VMnet1和VMnet8,VMnet1是虚拟机主机模式的网原创 2021-06-20 23:06:20 · 581 阅读 · 0 评论 -
java-lock
锁并发 (Concurrency):一个处理器“同时”处理多个任务并行 (Parallelism):多个处理器 “同时”处理多个任务常见锁类型:1.互斥锁(Mutex)同步块 synchronized block对象锁 object.lock()可重入锁可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。ReentrantLock 和synchronized 都是 可重入锁。在lock函数内,应验证线程是否为已经获得锁的原创 2020-08-12 22:11:30 · 131 阅读 · 0 评论 -
java修饰符
java修饰词1.volatile介绍volatile是java最轻量级的同步机制。特性:1 可见性。变量读写直接操作主存而不是CPU Cache。当一个线程修改了volatile修饰的变量后,无论是否加锁,其它线程都可以立即看到最新的修改。2 禁止指令重排序优化。3 保证变量可见性,但无法保证原子性。也就是说非线程安全java内存模型:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7gzTtjgc-1597241422390)(img/16.png)]深入原创 2020-08-12 22:10:38 · 108 阅读 · 0 评论 -
构造函数
构造器的名字必须和类名相同,而匿名内部类没有类名,所有不可以有构造器1 构造方法不能用对象调用;A:构造方法概述和作用,给对象的数据(属性)进行初始化 B:构造方法格式特点a:方法名与类名相同(大小也要与类名一致)b:没有返回值类型,连void都没有c:没有具体的返回值return;-----重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表,系统默认创造一个无参数的,我们创建系统就不提供了!1 可以重载,和类名相同,this()才是调用构造函数的第一条语句,this是不需要的,原创 2020-08-12 22:09:01 · 122 阅读 · 0 评论 -
教训
1 集合,对象去他妈的懒加载,立刻加载!!!减少不必要的麻烦!2 不要相信前端传递进来的东西,不要相信数据库查询出来的东西,否则会给你一个无情的NPE!3 永远不要给一个对象或者集合赋值null,可以初始值!4 大的需求学会拆分,一步一步,...原创 2019-12-03 22:14:26 · 85 阅读 · 0 评论 -
不知该不该跑路?有点特殊
入职一周,公司配的电脑还不如我大一买的用了四年的,键盘有的都是坏的,12寸,不适合开发,办公室非常非常的吵闹!刚来就弄需求!这是一个中途开发的项目啊,代码结构数据库啥的都没看!收到了另一家的offer,不知道该不该跑路?下家有时什么情况呢?麻烦大家给些建议...原创 2019-08-04 10:44:03 · 129 阅读 · 0 评论 -
今天面试java实习----集合频率也太高了!
发现集合是高频出现的,1.有你熟悉的集合有哪些?2.什么时候用数组,什么时候用集合?3.ArrayList和LinkedList的区别?4.HashMap和HashTable的区别?原创 2018-07-07 18:15:58 · 381 阅读 · 0 评论