JAVA基础知识
文章平均质量分 54
JAVA基础知识
代码科学
code-sci
展开
-
风趣幽默图解线程池
65 哥:码哥,我最近看到线程池,被里边乱七八槽的参数给搞晕了,你能不能给我讲讲呀?码哥:没问题,这个我擅长,咱们从一个最简单的情况开始,假设有一段代码,你希望异步执行它,是不是要写出这样的代码?newThread(r).start();65 哥:嗯嗯,最简单的写法似乎就是这样呢。码哥:这种写法当然可以完成功能,可是你这样写,老王这样写,老张也这样写,程序中到处都是这样创建线程的方法,能不能写一个统一的工具类让大家调用呢?65 哥:可以的,感觉有一个统一的工具类,更优雅一些。.转载 2021-02-19 09:55:11 · 161 阅读 · 0 评论 -
你有哪些面试失败的惨痛经验?
如果你是应届生,或者准备换工作,希望对你有帮助。你在面试中经常遇到的12个面试问题和推荐回答1、自我介绍典型错误:把简历复读一遍;没有提前准备好,想到什么说什么,把面试官搞得很迷茫。一般把控在1~2分钟之内最佳,时间有限,说清楚3点即可:1)简单背景介绍2)公司为什么要选你3)你为什么要选择公司背景介绍名字,毕业时间,工作年限。如果你的大学比较牛或者专业跟职位对口,就提一下,否则可不说。公司为什么选择你分析职位介绍,挑选出最重要的1-2点,再针对性地说自己做过该1转载 2020-08-16 13:07:22 · 1056 阅读 · 0 评论 -
session生命周期,与cookie的区别
sessinon在用户访问第一次访问服务器时创建。Session什么时候失效?1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。2. 调用Session的invalidate方法。3、Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。转载 2018-01-06 18:39:15 · 358 阅读 · 0 评论 -
mysql存储过程简单用法
show procedure status 查看所有存储过程先将结束符改成//delimiter //create procedure query(page int)beginselect * from class where id > page;end//将结束符改回;delimiter ;call query(20)drop proced原创 2018-01-05 00:53:31 · 184 阅读 · 0 评论 -
spring单例bean是线程安全的吗?
如果在你不定义成员变量的情况下,spring默认是线程安全的否则,设置scope="prototype"转载 2018-01-04 21:33:20 · 8051 阅读 · 1 评论 -
JAVA良好的编码习惯
1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽转载 2018-01-06 23:10:05 · 709 阅读 · 0 评论 -
MyBatis中使用 # 和 $ 书写占位符有什么区别?
#将传入的数据都当成一个字符串,会对传入的数据自动加上引号;$将传入的数据直接显示生成在SQL中注意:使用 $ 占位符可能会导致SQL注入攻击,能用#的地方就不要使用 $写order by 子句的时候应该用 $ 而不是#转载 2018-01-07 11:40:38 · 7408 阅读 · 0 评论 -
迭代器的作用
迭代器就是把不同的数据结构 "相同功能 "的函数装到一个名字相同的函数里,这样的话你在写算法的时候就可以不管你要操作的数据结构的逻辑结构了。比如不管是链表,数组还是别的什么,统一都用迭代器进行访问的话可能都是 Next()表示下一个元素 Pre()表示上一个元素等等 。其实意思就是,不管你用的是链表,2叉树、3叉树、N叉树,还是向量。 迭代器都可以让你从first开始,使用next转载 2018-01-07 17:09:43 · 1507 阅读 · 0 评论 -
真实面试题
RTDL1、什么是代码复用性?将常用的代码封装成方法,放在工具类里2、JQuery的选择器,怎么去除Class?removeClass3、怎么判断list,map,string是否为空?if(CollectionUtils.isEmpty(list)){ } if(CollectionUtils.isNotEmpty(list))原创 2018-01-01 01:39:09 · 309 阅读 · 0 评论 -
JAVA开发中如何优化类的设计
具体类依赖于抽象类,而非抽象类依赖于具体类。这样做有利于一个抽象类扩展多个具体类。开放封闭原则:对扩展开放,对修改封闭。1.永远保持数据私有 保持数据的私有是设计类时,必须重点考虑的问题。保持私有的数据有利于封装。虽然为了保持数据的私有,需要编写设置器与访问期,但这比起不是数据私有要安全的多。2.永远初始化数据 Java不提供对本地变量的初始化,但它会初始化对象中的实力字段转载 2018-01-07 14:21:56 · 340 阅读 · 0 评论 -
多线程面试题
1、什么是线程,什么是进程,它们有什么区别和联系,一个进程里面是否必须有个线程 进程本质是一个正在执行的程序,一个进程可以有多个线程.线程是进程的最小执行单位,一个进程至少有一个线程 区别:1:多进程程序不受java控制,而多线程则受java控制, 2:多线程比多进程需要更少的管理成本2、实现一个线程有哪几种方式转载 2018-01-01 00:48:38 · 569 阅读 · 0 评论 -
如何根据对象的属性,对集合(list / set)中的对象进行排序
通过java.util.Collections的sort方法,有2个参数,第一个参数是list对象,第二个参数是new Comparator(){}方法,这个方法实现了compare()方法,具体代码如下所示:123456789101112131415转载 2018-01-08 23:21:47 · 674 阅读 · 0 评论 -
404错误、405错误、500错误出错原因
1、404错误是服务器执行完客户端的请求以后,返回给客户端的一个执行结果的状态编码。产生原因:web服务器(容器)根据请求的地址找不到相应资源。如:1)地址错误(拼写不正确,字母大小写错误)2)web.xml文件中的两个不一致3)工程没有部署4)web应用程序部署结构没有遵守servlet规范2、405错误产生原因:web服务器(容器)找不到service(转载 2018-01-09 10:30:45 · 1583 阅读 · 0 评论 -
servlet本质是什么
作者:Javdroider Hong链接:https://www.zhihu.com/question/21416727/answer/339012081来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这个提问的最大一个bug,就是以为servlet是很复杂的东西,事实上,servlet就是一个Java接口,interface! 打开idea,ctrl + shift...转载 2018-03-11 21:24:14 · 2217 阅读 · 0 评论 -
JAVA面试中问及hibernate与 hibernate的对比
hibernate配置比较复杂,mybatis配置简单。hibernate的sql是全自动生成的,mybatis的sql都是写在xml里,与java代码分离,优化sql比hibernate方便很多。hibernate是基于对象的,一次查询会查询所有字段,mybatis可以根据需要查询指定的字段。hibernate的门槛比较高.如果没有使用hibernate的高手,有问题转载 2018-01-05 22:47:40 · 199 阅读 · 0 评论 -
Angularjs优点
数据双向绑定,前后台的更改都可以随时生效,提供mvc开发模式模式,剥离前端各部分代码,使代码便于维护管理。简化了你写DOM操作原创 2018-01-05 23:34:57 · 577 阅读 · 0 评论 -
面向对象面试题
1、面向对象的优点? 易拓展,易维护 2、如何声名一个静态块? 使用static 关键字,后面跟上大括号 3、接口与抽象类的区别? 凡是用abstract修饰的类都叫做抽象类 抽象类可以有零个或多个抽象方法,也可以包含非抽象方法 抽象类中可以没有抽象方法,但是有抽象方法的类必须是抽象转载 2018-01-01 01:35:25 · 1103 阅读 · 0 评论 -
异常面试题
1、检查性异常与非检查性异常区别检查性异常:不处理编译不能通过非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台。运行时异常:就是非检查性异常非运行时异常:就是检查性异常 2、Error和Exception的区别error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception转载 2018-01-01 01:36:31 · 170 阅读 · 0 评论 -
JAVA正则-检验QQ是否合法
/** 0不能开头,全数字,位数5-10位* 123456*/public static void checkQQ(){String QQ = " 123456 ";//检查QQ号码和规则是否匹配,String 类的方法matchesboolean b = QQ.matches( "[ 1 - 9 ][ 0 - 9 ]{ 4 , 9 }" );System.原创 2018-01-01 13:47:26 · 399 阅读 · 0 评论 -
反射的概念
JAVA反射机制是在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法。对于任意一个对象,都能调用它的任意一个方法和属性这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制原创 2018-01-03 00:04:28 · 226 阅读 · 0 评论 -
什么是微服务
简单说,微服务架构就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务,每个服务都能独立部署,独立维护,独立扩展,服务与服务间通过RESTful API的方式互相调用。看上去象分布式,但是还是有区别的。分布式的主要目的是分散压力,微服务更强调的是敏捷,健壮性,解耦,并且微服务的数据都应该是独立的,因为微服务一般都是分布式,所有分布式架构所带来的有点微服务也都有。现在在业界基于微转载 2018-01-04 18:38:53 · 172 阅读 · 0 评论 -
什么是SpringCloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。转载 2018-01-04 18:51:22 · 239 阅读 · 0 评论 -
spring容器概述
这篇博客写一下对spring和springmvc父子容器的理解。一、首先明确:(1)spring是一个大的父容器,springmvc是其中的一个子容器。父容器不能访问子容器对象,但是子容器可以访问父容器对象。(2)一般做一个ssm框架项目的时候,扫描@controller注解类的对象是在springmvc容器中。而扫描@service、@component、@Reposit转载 2018-01-04 20:41:55 · 170 阅读 · 0 评论 -
动态代理的概念
首先动态代理是设计模式当中代理模式的一种。1,什么是代理模式?代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。2,代理模式有什么好处?在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用静态代理若代理类在程序运行前就已经存在,那么这种代理方式被成为 静态代理 。(静态代理事实上就是装饰者原创 2018-01-03 00:08:50 · 914 阅读 · 0 评论 -
几种加密算法简介
DES加密算法DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为256。转载 2018-01-04 21:58:12 · 437 阅读 · 0 评论 -
spring常见异常
到目前为止最常见的导致BeanCreationException 莫过于注入一个上下文中不存在的bean。 例如:BeanA尝试注入BeanB@Componentpublic class BeanA { @Autowired private BeanB dependency; ...}1234567如果spring上下文中不存在BeanB,那么下面的异转载 2018-01-05 08:27:20 · 207 阅读 · 0 评论 -
springMVC容器简介和执行流程
先来看一下,初始化的大体流程: 然后,我们再来看一下,我们的控制器DispatcherServlet的类图及继承关系。 系统启动的时候根据配置文件创建spring的容器, 首先是发送http请求到核心控制器disPatherServlet,spring容器通过映射器去寻找业务控制器,使用适配器找到相应的业务类,在进业务类时进行数据封装,在封装前可转载 2018-01-04 21:09:53 · 248 阅读 · 0 评论 -
关于MySQL 建表的一些建议
由于在生产环境下,我们对MySQL数据库的操作通常是通过命令行进行操作,因此,建议建表的时候也手写MySQL语句(不建议用图形界面建表)。1、添加注释的格式在编写MySQL语句时,我们通常会被要求加上注释,推荐的注释格式为:[sql] view plain copy-------------------------------转载 2018-01-05 19:45:29 · 586 阅读 · 0 评论 -
各大公司Java后端开发面试题总结
ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对转载 2018-01-05 19:54:23 · 138 阅读 · 0 评论 -
简单java队列
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。以下实例演示了队列(Queue)的用法:/* author by w3cschool.cc Main.java */import java.util.LinkedList;import j转载 2018-01-05 22:03:27 · 2681 阅读 · 0 评论 -
Spring框架面试题
1、Spring的aop你怎样实现? 用动态代理和cglib实现,有接口的用动态代理,无接口的用cglib 2、Spring在SSH起什么作用 (spring充当了管理容器的角色,)为大部分框架提供模板,给常见的核心类提供初始化,并且整合三层框架 3、Spring容器内部怎么实现的 内部用HashMap实现 4、转载 2018-01-01 00:45:55 · 1294 阅读 · 0 评论