
java
理会拾光
这个作者很懒,什么都没留下…
展开
-
如何决定使用HashMap还是TreeMap?
问:如何决定使用 HashMap 还是 TreeMap?介绍TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用于在Map中插入、删除和定位元素。结论如果你需要原创 2020-07-24 10:11:23 · 821 阅读 · 0 评论 -
java经典常用笔试题(二)
The following questions have appeared on actual exams. Situational details (ie, names, locations, and quantities) have been changed to avoid copyright infringement. Memorize as many of these questions as possible in the 5 nights prior to your exam. Good l原创 2020-07-22 13:38:55 · 2483 阅读 · 0 评论 -
java经典常用笔试题(一)
1. 1) public class ReturnIt{ 2) returnType methodA(byte x, double y){ 3) return (short)x/y*2; 4) } 5) } what is valid returnType for methodA in line 2?Answer:double2. 1) class Super{ 2) public float getNum(){return 3.0f;} 3) } 4) 5)原创 2020-07-22 11:06:43 · 1550 阅读 · 0 评论 -
RBAC
一.RBAC概述1.权限管理不用用户登录系统后, 看到的页面效果不同, 能访问的菜单不同, 页面元素不同, 访问路径会有限制.2.RBAC概述初期设计新增用户, 新用户能访问所有菜单, 需要执行多少条SQL语句? N+1.需要优化, 使用RBAC思想进行优化.RBAC, 全称是Role-Based Access Control. 基于角色的访问控制. 引入角色的概念, 通过角色进行权限的预定义, 然后让用户和角色建立关系.如果一个用户只有一个角色, 那么可以继续简化:二.RBAC代码原创 2020-07-20 17:05:50 · 493 阅读 · 0 评论 -
电商项目相关面试问题及答案
请描述一下这个系统?【回答技巧】从3个方面来回答这个问题:|–系统背景及系统概述|–系统包括的业务模块及主业务流程|–责任模块【回答示例】第一个方面:系统背景及系统概述优购时尚商城是香港上市公司百丽国际公司为拓宽旗下运动品牌服饰市场而开发的一个专业销售购物网站户外运动装备的网站。第二个方面:系统包括的业务模块及主业务流程改项目分为前台和后天2大模块:前台又包含:全部商品分类、运动馆、户外馆、鞋靴馆、女装馆、男装馆、母婴馆、生活馆、会员中心、秒杀、闪团、INNET运动鞋、潮流馆。每一个分原创 2020-07-17 10:09:04 · 24049 阅读 · 1 评论 -
日历实现
@[TOC]万年历万年历public class Test2 {public static void main(String[] args) throws ParseException {Calendar c=Calendar.getInstance();Scanner input=new Scanner(System.in);System.out.println(“输入一个日期:(y...原创 2019-08-03 16:21:27 · 124 阅读 · 0 评论 -
idea修改左侧背景色
File | Settings | Appearance & Behavior | File Colors ,然后选择+号 选择Project file就可以自己定制颜色了。原创 2019-08-05 10:25:56 · 5260 阅读 · 1 评论 -
Error parsing HTTP request header
在Tomcat中遇到如下问题:Error parsing HTTP request header解决方法:1.将https改为http2.在server.xml中增加maxHttpHeaderSize字段即可:原创 2019-08-06 14:57:39 · 447 阅读 · 0 评论 -
成员变量和局部变量的区别?
成员变量和局部变量的区别?a)在类中的位置不同成员变量:在类中方法外局部变量:在方法定义中或者方法声明上b)在内存中的位置不同成员变量:在堆内存局部变量:在栈内存c)生命周期不同成员变量:随着对象的创建而存在,随着对象的消失而消失局部变量:随着方法的调用而存在,随着方法的调用完毕而消失d)初始化值不同成员变量:有默认初始化值局部变量:没有默认初始化值,必须定义,赋值,然后才...原创 2019-08-10 19:32:29 · 91 阅读 · 0 评论 -
text/html和text/plain的区别
1.text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。2.text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理。...原创 2019-08-17 20:47:24 · 456 阅读 · 0 评论 -
线程优化
无限制创建线程Web服务器中,在正常负载情况下,为每个任务分配一个线程,能够提升串行执行条件下的性能。只要请求的到达率不超出服务器的请求处理能力,那么这种方法可以同时带来更快的响应性和更高的吞吐率。如果请求的到达速率非常高,且请求的处理过程是轻量级的,那么为每个请求创建一个新线程将消耗大量的计算资源。引发的问题线程的生命周期开销非常高消耗过多的CPU资源如果可运行的线程数量多于可用处理器...原创 2020-03-20 09:36:02 · 1888 阅读 · 0 评论 -
单例模式
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3...原创 2020-03-20 09:56:51 · 81 阅读 · 0 评论 -
工厂模式
工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择...原创 2020-03-20 09:59:27 · 67 阅读 · 0 评论 -
装饰者模式
装饰者模式装饰者模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。介绍意图:动态地给...原创 2020-03-20 10:01:58 · 87 阅读 · 0 评论 -
观察者模式
观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象...原创 2020-03-20 10:09:41 · 114 阅读 · 0 评论 -
同步和异步
同步:A执行完执行B,B执行完执行C,如果A没有执行完,B执行不了。异步:A执行的同时B也可以执行,B执行的同时C也可以执行。原创 2020-03-20 10:39:42 · 94 阅读 · 0 评论 -
String、StringBuffer和StringBuilder的区别?
String、StringBuffer、StringBuilder区别与联系1)String类是字符序列不可变的类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁。java.lang.String类是引用数据类型,并且是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类2) Str...原创 2020-03-20 10:36:02 · 82 阅读 · 0 评论 -
高并发及解决方案
高并发解决方案案例 流量优化:防盗链处理 前端优化:减少HTTP请求,合并css或js,添加异步请求,启用浏览器缓存和文件压缩,CDN加速,建立独立图片服务器, 服务端优化:页面静态化,并发处理,队列处理 数据库优化:数据库缓存,分库分表,分区操作,读写分离,负载均衡 web服务器优化:负载均衡,nginx反向代理,7,4层LVS软件2. web资源防盗链 盗链:在自己的...原创 2020-03-20 10:47:28 · 199 阅读 · 0 评论 -
Java中的集合类的层次结构
collection:不唯一,无序List:有序、不唯一,可以有相同对象Set:无序、唯一,不能有相同对象ArrayList:底层为数组,可按索引取元素,不安全,可null,查询快,插入、删除慢LinkedList:底层为双向链表,不安全,查询慢,插入、删除快HashSet:绝大部分是调用HashMap实现的,底层为数组,不能重复,可nullLinkedHashSet:是HashSe...原创 2020-04-12 19:44:28 · 674 阅读 · 0 评论 -
&和&&的区别
&和&&的联系(共同点):&和&&都可以用作逻辑与运算符,但是要看使用时的具体条件来决定。操作数1&操作数2,操作数1&&操作数2,表达式1&表达式2,表达式1&&表达式2,情况1:当上述的操作数是boolean类型变量时,&和&&都可以用作逻辑与运算符。情况2:当上...原创 2020-04-12 19:52:40 · 241 阅读 · 0 评论 -
什么是事务?什么是锁?
什么是事务?什么是锁?指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。简单的说,事务就是并发控制的单位,是用户定义的一个操作序列。而一个逻辑工作单元要成为事务,就必须满足ACID属性。事务与锁是不同的。事务具有ACID(原子性、一致性、隔离性和持久性),锁是用于解决隔离性的一种机制。事务的隔离级别通过锁的机制来实现。另外锁有不同的粒度,同时事务也是有不同的隔离级...原创 2020-04-12 20:09:13 · 4342 阅读 · 0 评论 -
实现多线程的几种方式
实现多线程有以下四种方式:1.继承Thread类2.实现Runnable接口3.实现Callable接口4.线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁额外开销,提高了响应的速度。体系结构:java.util.concurrent.Executor : 负责线程的使用与调度的根接口|–ExecutorService 子接口: 线程池的主要接口|–Th...原创 2020-04-12 20:19:24 · 1289 阅读 · 0 评论 -
反射的概念和作用
反射的概念:反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。反射机制是Java动态性的重要体现。我们可以通过反射机制在运行时加载编译期完全未知的类。通过反射机制,我们可以在运行时加载需要的类,从而...原创 2020-04-22 13:46:51 · 2431 阅读 · 0 评论 -
JVM原理?内存泄漏与溢出的区别?何时产生内存泄漏?
JVM原理:JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。JVM是Java平台的基础,和实际的机器一样,它也有自己的指令集,并...原创 2020-04-22 13:50:59 · 159 阅读 · 0 评论 -
final, finally, finalize 的区别?
final:修饰符(关键字)有三种用法:如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词。将变量声明为final,可以保证它们在使用中不被改变,被声明为final 的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。被声明为final 的方法也同样只能使用,不能在子类中被重写。finally:通常放在try…catch的后面构造...原创 2020-04-22 13:58:02 · 139 阅读 · 0 评论 -
启动一个线程是用run()还是start()方法?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM 调度并执行,这并不意味着线程就会立即运行。run()方法是线程启动后要进行回调(callback)的方法。API解释如下:...原创 2020-04-22 14:01:12 · 895 阅读 · 0 评论 -
什么是JVM?什么是JDK? 什么是JRE?
JVM :JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。JVM是Java平台的基础,和实际的机器一样,它也有自己的指令集,并且在...原创 2020-04-22 14:06:35 · 169 阅读 · 0 评论 -
Java创建对象的几种方式
1、 用new语句创建对象,这是最常见的创建对象的方法。调用了构造函数2、 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。调用了构造函数3、 调用对象的clone()方法。没有调用构造函数4、运用反序列化手段,调用java.io.ObjectInputStream对象的 readOb...原创 2020-04-26 20:38:41 · 346 阅读 · 0 评论 -
Servlet的生命周期,Servlet和CGI的区别?jsp生命周期
Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init()方法进行Servlet的初始化;请求到达时调用Servlet的service方法,service方法会调用与请求对应的doGet或doPost等方法;当服务器关闭会项目被卸载时服务器会将Servlet实例销毁,此时会调用Servlet的destroy方法。Servlet与CGI的区别在于Servlet处于...原创 2020-04-30 10:05:34 · 256 阅读 · 0 评论 -
代理方式以及实现
代理的好处保护真实对象真实对象只需要专注自己的核心业务, 额外的功能不需要考虑代理可以在已有功能的基础上进行功能的增强.代理模式中的角色. 标准 --> 接口. 真实对象(目标) --> 房东. 代理对象 --> 中介公司的员工. 用户 --> 租户(客户)代理模式的分类静态代理特点是代理对象是针对指定的目标做的, 所有代码都固定的, 由程序员提供. 代码实现非常简单, 不能复用.动态代理特点是代理对象不是固定的, 代码是由后台根据情况生成的. 代理功能原创 2020-06-07 09:54:01 · 123 阅读 · 0 评论 -
转发和重定向
forward:是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect:就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。调用方法:Se原创 2020-06-09 10:36:18 · 215 阅读 · 0 评论 -
Abstract关键字
abstract关键字 :英文单词的意思,抽象的(1)修饰类 -->称为抽象类特征:就是不能创建对象(不能实例化) public abstract class Animal {}抽象类可不可以有构造方法呢?可以,但是抽象类中的构造方法不是给自己使用的,是提供给子类调用的 (super…)为什么需要使用抽象类?使用抽象类去定义模板 ,这个模板在各个子类之间通用,限制了子类设计的随意性(2)修饰方法 :使用abstract修饰的方法称为抽象方法特 点:a)没有方法体,只能以分号结原创 2020-06-09 13:13:57 · 732 阅读 · 0 评论 -
static关键字
static关键字:静态的(1) static可以修饰成员变量 ,称为静态变量 ,在方法区标准 使用方式: 类名.静态变量名另外一种使用方式: 对象名.静态变量名(2)static可以修饰成员方法,称为静态方法标准使用方式: 类名.方法名();另外一种使用方式: 对象名.方法名();package day1;public class Student { String name; //name与age称为成员变量,在堆 int age;原创 2020-06-09 13:34:21 · 110 阅读 · 0 评论