
java
光图强
这个作者很懒,什么都没留下…
展开
-
华为2016校园招聘上机笔试题
1. 最高分是多少?(1)题目描述老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正原创 2020-07-28 15:21:02 · 327 阅读 · 0 评论 -
牛客笔试题没有头绪?你需要的是扎实的基础
计算机存储单元计算机最小i信息单元:位(bit),又称为“比特位”,通常用小写字母“b”表示。计算机最小存储单元:字节(byte),通常用大写字母“B”表示。1B(字节)= 8bit1KB = 1024B1MB = 1024KB1GB = 1024MB1TB = 1024GBJava数据类型有哪些?Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型分配不同的存储空间,相应的数据大小也不一样。Java数据类型分为8种基本数据类型和3种引用数据类型,基本数据类原创 2020-07-28 14:54:28 · 171 阅读 · 0 评论 -
java如何计算一段代码的执行时间
通过获取代码前后系统时间,计算时间差获取执行时间。long start = System.currentTimeMillis();long sum = 0;for (int i = 0; i <= 100000; i++) { sum += i;}System.out.println("sum = " + sum);long end = System.currentTimeMillis(); System.out.println(end - start + "ms");...原创 2020-07-23 17:26:36 · 1152 阅读 · 0 评论 -
java序列化
笔记序列化是为了解决对对象流进行操作所引发的问题。序列化是一种用来处理对象流的机制,对象流就是将对象的内容进行流化。可以对流化后的数据进行读写操作,并且将流化后的数据传输于网络之间。当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。只能将支持 java.io.Serializable 接口的对象写入流中。每个 serializab原创 2020-07-16 18:18:51 · 116 阅读 · 0 评论 -
B/S与C/S的联系与区别
简介C/S即Client/Service(客户机与服务器)结构。CS在技术上很成熟,它的特点是交互性强,具有安全的存储模式,网络通信量低,适用于处理大量数据。B/S即Browser/Service(浏览器与服务器)结构。只安装维护一个Service服务器,客户端采用浏览器运行软件。相对与传统C/S结构是一大进步。B/S结构的特点是分布性强,维护方便,开发简单且共享性强,总体拥有成本低。区别开发成本:cs结构开发成本比bs高。因为cs结构,不同的客户端需要开发不同的程序。软件安装调试与升级需要在原创 2020-07-16 17:13:39 · 1007 阅读 · 1 评论 -
java常用类,包和接口
类java.lang.Object:java超类java.lang.String:字符串封装对象java.lang.System:代表java程序的运行平台java.io.File:文件操作类java.io.FileInputStream:用于读取本地文件中的字节数据java.lang.Thread:线程类包java.lang:java编程基础类java.net:提供实现网络应用和开发的类java.io:系统输入输出java.util:该包提供了包含集合框架、遗留的集合类、事件模原创 2020-07-16 16:51:54 · 1270 阅读 · 0 评论 -
java集合
List简介继承自Collection接口,存放有序可可重复的对象,拥有一系列和索引相关的方法。查询速度快。List集合删除和修改数据时,伴随着后面数据的移动,所以插入和删除数据速度比较慢。实现类ArrayList:适用于快速随机访问元素。LinkedList:底层基于链表实现,链表内存是散乱的,每个元素存储本身内存地址的同时,还存储下一个元素的地址,链表增删快,查找慢。插入和删除数据,不涉及重排数据。Vector:同步线程安全的。适用于设计堆栈、队列等操作。Set继承自Collecti原创 2020-07-16 15:56:57 · 122 阅读 · 0 评论 -
项目运行一段时间,上传文件突然有问题?原来是这样!
问题描述项目运行了一段时间,上传文件,突然报错误,一时间慌了神,立马问百度,恍然大悟。The temporary upload location [C:\Users\test\AppData\Local\Temp\tomcat.8083403186712289847.8080\work\Tomcat\localhost\ROOT] is not valid 原因:springboot项目自动删除了临时文件,而且部署在linux上的项目,linux系统会定时清理/tmp目录下的内容,一般为10天。原创 2020-06-04 11:31:20 · 2752 阅读 · 0 评论 -
java过滤器和拦截器
拦截器简介用于在某个方法被访问之前进行拦截,然后在方法执行之前或之后加入某些操作,其实就是AOP的一种实现策略。它通过动态拦截Action调用的对象,允许开发者定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时它也提供了一种可以提取action中可重用的部分的方式。每个Interceptor的调用会依据它在xml文件中声明顺序依次执行。SpringMVC中的Interceptor是链式调用的,每个Interceptor的调用都根据它的声明顺序依次执行,且原创 2020-06-02 17:31:16 · 726 阅读 · 0 评论 -
如何获取客户端真实IP
简介获取客户端的IP地址常用的方法是:request.getRemoteAddr()。但是如果通过了Apache,Nagix等反向代理软件则获取不到客户端的真实IP。经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。例如:使用反向代理,将http://192.168.10.1:8原创 2020-05-26 16:04:04 · 2814 阅读 · 0 评论 -
如何使用token验证代替session
简介token:指访问资源的凭据,用于检验请求的合法性。适用于项目级的前后端分离。可以用数据库存储token,也可以选择放在内存当中。比如 redis 很适合对 token 查询的需求。token 可以避免 CSRF 攻击(因为不需要 cookie 了)。完美契合移动端的需求。session:session记录服务器和客户端会话状态的机制。session在服务端生成和保存,并转化为一个临时的Cookie(sessionId)发送给客户端,当客户端第一次请求服务器时,会检查是否携带了这个Sess原创 2020-05-25 17:55:32 · 3113 阅读 · 0 评论 -
Session分布式共享
session原创 2020-05-21 17:41:58 · 201 阅读 · 0 评论 -
缓存方案二:redis
简介Redis作为当下最流行的缓存框架,适用于处理大数据量分布式场景的缓存。特点持久化将内存的数据保存到磁盘中,重启的时候可以再次加载使用。支持RDB和AOF两种持久化方式。RDB:在redis.conf配置文件里配置持久化触发器。AOF:redis每增加一条记录都会保存到持久化文件中。丰富的数据类型支持key-value,list,set,zset,hash等多种数据结构的存储。数据备份提供主从复制方案,即master-slave模式的数据备份。优势性能极高。毫秒级的读写数原创 2020-05-21 11:02:05 · 146 阅读 · 0 评论 -
还在用Timer吗?Quertz可以试一试
简介Quertz是一个开源的作业任务调度框架,他可以完成像JavaScript定时器类式的功能,其实Java中Timer也可实现部分功能,但相比Quertz还是略逊一筹。Quartz 核心元素Scheduler——任务调度器Trigger——触发器Job——任务trigger和job是任务调度的元数据,scheduler是实际执行调度的控制器Trigger是用于定义调度时间的元素,即按照什么时间规则去执行任务。Quartz中主要提供了四种类型的trigger:SimpleTrigger,Cr原创 2020-05-18 15:35:57 · 196 阅读 · 0 评论 -
ApplicationContext:上下文管理
简介Spring有两个核心接口:BeanFactory和ApplicationContext。ApplicationContext是BeanFactory的子接口。他们都可代表Spring容器,Spring容器是生成Bean实例的工厂,并且管理容器中的Bean。Bean是Spring管理的基本单位,在基于Spring的Java EE应用中,所有的组件都被当成Bean处理,包括数据源、Hibernate的SessionFactory、事务管理器等。在Spring中,Bean的是一个非常广义的概念,任原创 2020-05-14 16:34:10 · 636 阅读 · 0 评论 -
缓存方案一:EhCache
EhCacheEhCache是十分流行的开源缓存框架,解决了关系数据系统数据提取的高花费、高延时问题。Ehcache 属于轻量级框架,内含持久化机制,保证JVM和服务器重启后数据不会丢失。Hibernate和Liferay的默认缓存策略就是用Ehcache。Spring CacheSpring Cache核心就是对某个方法进行缓存,其实质就是缓存该方法的返回结果,并把方法参数和结果用键值对的方式存放到缓存中,当再次调用该方法使用相应的参数时,就会直接从缓存里面取出指定的结果进行返回。配置方法:原创 2020-05-13 17:00:18 · 408 阅读 · 0 评论 -
Spring Data:JPA与Querydsl
JPAJPA是java的一个规范,用于在java对象和数据库之间保存数据,充当面向对象领域模型和数据库之间的桥梁。它使用Hibernate、TopLink、IBatis等ORM框架实现持久性规范。Spring DataSpring Data是Spring的一个子项目,用于简化数据库访问,支持NoSql数据和关系数据库。支持的NoSql数据库包括:Mongodb、redis、Hbase、Neo4j。Spring Data JPASpring Data JPA是构建在ORM框架和JPA规范上的一套J原创 2020-05-12 14:41:15 · 1692 阅读 · 0 评论 -
java面试进阶-基础篇:线程
1、创建线程的方式及实现2、sleep() 、join()、yield()有什么区别3、说说 CountDownLatch 原理4、说说 CyclicBarrier 原理5、说说 Semaphore 原理6、说说 Exchanger 原理7、说说 CountDownLatch 与 CyclicBarrier 区别8、ThreadLocal 原理分析9、讲讲线程池的实现原理10、线...原创 2020-05-08 16:09:13 · 118 阅读 · 0 评论 -
spring-boot-starter-security
应用安全属于安全防护体系中的重要一环,但也是最薄弱的一环,究其原因,或许是应用的核心职责是完成业务和产品的功能需求。Spring 生态圈现成的解决方案,是从 Acegi 发展起来的 SpringSecurity。Spring Security是一个灵活和强大的身份验证和访问控制框架,以确保基于Spring的Java Web应用程序的安全。Spring Security是一个轻量级的安全框架,...原创 2020-05-08 11:38:27 · 1868 阅读 · 0 评论 -
java面试进阶-基础篇:集合
1、List 和 Set 区别List允许重复的对象,允许多个null元素,有序容器,通过索引访问list中的元素,常用的实现类有ArrayList、LinkList和Vector。Set不允许重复对象,只允许一个null元素,无序容器,无法保证元素的顺序。常见实现类有HashSet、LinkHashSet、TreeSet,TreeSet通过Comparetor或Comparable维持排序...原创 2020-05-07 17:29:25 · 203 阅读 · 0 评论 -
java面试进阶-基础篇:基本功
1、面向对象的特征 面向对象是软件开发方法,是对自然界理解和抽象的一种方法,是编程技术发展一定程度的必然阶段。对象唯一性。每个对象拥有唯一标识,通过这个标识,可以找到它。在对象的整个生命周期中,标识不会改变,不同的对象不能拥有相同的标识。抽象性。抽象性是指将一致的数据结构和行为抽象成类。类反映了与应用相关的重要性质。继承性。继承性是子类自动继承父类数据结构和方法的一种机制,是类之间的一...原创 2020-05-07 15:18:34 · 237 阅读 · 0 评论 -
如何遍历java对象属性
使用场景后台接收客户端传过来的值,经过相应的处理和操作,对数据库进行CURD操作。我们通常直接获取json对象,或创建一个dto对象映射json对象,并将值插入到固定的地方。如果客户端传递的参数特别多,前面的一对一的操作显然不太合适,这将编写大量看起来臃肿的代码。所以,更有效的方式是遍历json对象,数据表对象根据参数名称识别对应插入值的字段。获取对象的所有属性Field[] field =...原创 2020-04-30 17:57:43 · 5348 阅读 · 0 评论 -
JPA注解、配置及接口
@Entity@Entity - 这是一个标记注释,表明这个类是一个实体。这个注释必须放在类名称上。@id@Id - 此注释位于持有持久标识属性的特定字段上。该字段被视为数据库中的主键。@Table@Table - 当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。...原创 2020-04-30 15:05:36 · 776 阅读 · 0 评论 -
Spring、Spring Boot及Spring Mvc
Springspring是开放源代码的J2EE开发框架,是管理bean生命周期的轻量级容器。解决了J2EE遇到的常见问题,提供了IOC、AOP及Web mvc 等强大功能。Spring不仅能应用与J2EE应用程序中,还能应用于桌面应用程序和小应用程序之中。Spring框架由7部分组成,分别为Spring IOC,Spring AOP,Spring MVC,Spring Web,Spring D...原创 2020-04-29 15:51:13 · 191 阅读 · 0 评论 -
java单例模式
简介单例模式是一种常见的软件设计模式,其定义是单例对象的类只能允许一个实例存在。应用场景资源共享,避免资源操作时降低性能或造成损耗。如日志文件、web应用配置;控制资源,方便资源之间的互相通信,如线线程池。作用节省内存和计算,保证结果正确,方便管理。实现逻辑单例类的构造方法为私有方法,使其它地方的代码无法通过调用该类构造方法实例化该类的对象,只能通过该类提供的静态方法来得到该...原创 2020-04-29 14:44:05 · 117 阅读 · 0 评论 -
如何设置时区
1. Ubuntu(1)timedatectl时间同步$date #查看当前时区$cat /etc/timezone #同上$timedatectl #查看时间是否与互联网同步,不同步则显示System clock synchronized:no$s...原创 2020-04-15 11:07:29 · 1596 阅读 · 0 评论 -
java-阅读篇(2):Freemarker
简介FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。知识点数据模型可以被看成是树形结构。标量用于存储单一的值。这种类型的值可以是字符串,数字,日期/时间或者是布尔值。哈希表是一种存储变量及其相关且有...原创 2020-03-12 16:44:56 · 302 阅读 · 0 评论 -
java随笔篇(1):注解
@Controller使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面@ResponseBody若返回json等内容到页面,则需要加@ResponseBody注解@RestController@RestController注解相当于@ResponseBody + @Controller合在一起的作用。返回json...原创 2020-03-11 15:08:34 · 133 阅读 · 0 评论 -
java阅读篇(1):面向对象与关系数据库
ORM对象关系映射(ORM)模式是为了解决面向对象与关系数据库存在的互不匹配的现象的技术。也就是说,ORM是通过使用描述对象和数据库之间的元数据,将程序中的对象自动持久化到关系数据库中。框架:Hibernate:映射元数据,面向对象查询数据,支持XML和注解两种元素形式,对象和表映射API操作实体对象,执行CRUD操作。TopLinkORMLiteIBATISJPOX映射方向:...原创 2020-03-04 17:54:35 · 421 阅读 · 0 评论 -
基于Ubuntu-docker部署web项目
一、Docker容器Docker是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。安装教程中文教程二、部署web容器docker search ubuntudocker pull ubuntudocker run -i -t -p 8080:8080 ubuntu:l...原创 2020-03-02 11:16:53 · 1376 阅读 · 0 评论 -
ssh方式上传本地项目到gitlab
简介GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。项目管理GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。(1...原创 2020-01-08 15:13:19 · 697 阅读 · 0 评论 -
maven常用命令
mvn命令参数mvn -v, --version 显示版本信息;mvn -V, --show-version 显示版本信息后继续执行Maven其他目标;mvn -h, --help 显示帮助信息;mvn -e, --errors 控制Maven的日志级别,产生执行错误相关消息;mvn -X, --debug 控制Maven的日志级别,产生执行调试信息;mvn -q, --quiet控...原创 2019-12-24 11:27:53 · 418 阅读 · 0 评论 -
jenkins入门
参考1参考2原创 2019-12-23 14:09:35 · 139 阅读 · 0 评论 -
java-正则表达式基础
简介正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。作用测试字符串内的模式。例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。替换文本。可以使用正则表达式来识别文档中的特定文本,完全删...原创 2019-12-18 11:51:37 · 170 阅读 · 0 评论 -
validator参数校验:避免繁琐的串行校验
问题很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation 注解式参数校验.validator注解javax.validation的一系列注解可以帮我们完成参数校验,免去繁琐的串行校验不然我们的代码就像下面这样:/** * 走串行校验 *...原创 2019-11-27 16:03:09 · 349 阅读 · 0 评论 -
java线程池-异步
进程与线程进程:一个正在运行的应用程序在操作系统中被称为一个进程,进程包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。进程之间是相互独立的,一个进程无法访问另一个进程的数据(除非用分布式计算方法),一个进程运行的失败也不会影响其他进程的运行,利用进程可以把工作划分为多个独立的区域。线程:是进程中的基本执行单元,是操作系统分配CPU时间的基本单位...原创 2019-11-26 15:17:53 · 739 阅读 · 0 评论 -
RESTful API规范
1. 简介rest是一种软件架构风格,如果你们的接口是rest接口,那么就可被认为你们的的接口是restful的,英文名词和形容词的区别。rest接口是围绕“资源”展开的,利用HTTP的协议,其实rest本也可以和HTTP无关,但是现在大家普遍的使用rest都是依托于HTTP协议。HTTP的url即资源。RFC 3986定义了通用的URI语法:URI = scheme “????/” aut...原创 2019-11-07 10:05:50 · 194 阅读 · 0 评论 -
java 处理表格工具JXL与POI
一、简介在日常工作中我们常常用到Excel来存储二维数据表格。我们在做数据分析的时候,通过使用python语言来操作表格数据。如果我们在java开发中用到表格处理,又该如何解决呢?java目前为我们提供了两种比较好的处理工具,分别为:jxl和poi。二、JXL与POI的使用(一)jxljxl,通过java操作excel表格的工具类库。支持Excel 95-2000的所有版本,能够修饰单元格...原创 2019-11-04 16:00:27 · 825 阅读 · 0 评论 -
java缩略图-解决方案
1. 应用场景为了使页面展示的图片,不会因为太大或太小导致无法显示或显示得不太美观,我们常常通过图片缩放的方法来调整图片。本文对图片功能提供了几个不同的解决方案,并对开发过程遇到的问题进行简单的描述。2.解决方案(1)使用Graphics().drawImage在指定位置并并且按照原始大小绘制指定的Image。package com.image.suoluetu; import jav...原创 2019-10-31 16:35:38 · 2632 阅读 · 1 评论 -
java:BeanUtils使用简介
1. 简介 Apache Common BeanUtil是一个常用的在对象之间复制数据的工具类,著名的web开发框架struts就是依赖于它进行ActionForm的创建。 BeanUtil最常用的类是org.apache.commons.beanutils.BeanUtils。 commons-beanutils是Apache组织下的一个基础的开源库,它提供了对Java反射和内省的A...原创 2019-10-21 10:42:20 · 594 阅读 · 0 评论