
Java 基础
文章平均质量分 68
饼条豪侠
这个作者很懒,什么都没留下…
展开
-
JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法
先上一段代码(上好的代码,多年陈酿)[java] view plain copyOutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8"); // 要输出的内容 result = (String)contentMap.get(RESPONSE_RESULT); resp.setH...原创 2018-05-15 17:22:34 · 2837 阅读 · 0 评论 -
spring配置executor线程池
先配置spring文件 class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> =mainExecutor.maxSize -->原创 2017-12-28 19:18:51 · 832 阅读 · 0 评论 -
Quartz定时任务框架使用总结
Quartz可以用来做什么?Quartz是一个任务调度框架。比如你遇到这样的问题想每月25号,信用卡自动还款想每年4月1日自己给当年暗恋女神发一封匿名贺卡想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Qu原创 2018-01-03 14:47:10 · 517 阅读 · 0 评论 -
java 集合类结构图
接口实现类保持插入顺序可重复排序使用说明 ListArrayListYYN长于随机访问元素;但插入、删除元素较慢(数组特性)。LinkedListYY原创 2017-11-27 13:57:40 · 700 阅读 · 0 评论 -
大型网站架构之分布式消息队列
以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐)资料本次分享总结一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式转载 2017-11-27 13:48:30 · 234 阅读 · 0 评论 -
SQL索引一步到位
SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时原创 2017-12-04 17:05:25 · 202 阅读 · 0 评论 -
list遍历的时候,删除某个符合条件的元素
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区。下面就来讲一讲。。伸手党可直接跳至文末。看总结。。 JAVA中循环遍历list有四种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。 1、for循环遍历listfo原创 2017-12-20 14:16:38 · 1084 阅读 · 0 评论 -
eclipse构建及运行maven web项目
简单讲下maven的安装步骤:1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量。2.下载maven3,最新版本是Maven3.0.4 ,下载地址:http://maven.apache.org/download.html下载apache-maven-3.0.4-bin.zip文件后,并解压到 D:\cloud_cms\maven\apac原创 2017-12-11 16:58:53 · 305 阅读 · 0 评论 -
关于字符串转换成json的总结
String aa="[{\"id\":\"0\",\"name\":\"退役后\"}]";try{JSONArray json=JSONArray.fromObject(aa);for (int i = 0; i JSONObject jb=json.getJSONObject(i);try{String DM_OBJECTNAME=jb.getString("DM_LE原创 2017-12-01 14:00:41 · 238 阅读 · 0 评论 -
什么是索引?索引有哪几种?什么时候使用索引比较好?
索引用来快速地寻找那些具有特定值的记录,所有的MySQL索引都以B-树的形式保存。如果没有索引,执行查询的时候MySQL必须从第一个记录开始扫描整个表中的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录既可迅速得到目标记录所有在位置。如果表有1000个记录,通过索引查找记录至少比顺序扫描记录快100倍。原创 2017-12-01 16:30:23 · 5941 阅读 · 3 评论 -
mysql添加外键
为已经添加好的数据表添加外键:语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user原创 2018-01-09 19:49:15 · 389 阅读 · 0 评论 -
springmvc批量将文件打包成zip下载
近期,项目要求把服务器存储的上传文件,批量下载到本地.参考网上资料,实现了服务器文件打包成压缩文件然后down到本地功能. 具体代码实现: 1、在服务器端创建一个临时zip格式文件 2、用jdk自带的API将服务器所有文件输入到zip文件中 3、将zip文件下载到本地,并删除服务器端zip文件@RequestMapping(value = "/downloadZip.do")原创 2018-01-10 10:51:32 · 3289 阅读 · 0 评论 -
Apache ab并发负载压力测试
运行: 在Windows系统下,打开cmd命令行窗口,定位到apache安装目录的bin目录下 cd C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin键入命令: ab -n 800 -c 800 http://192.168.0.10/ (-n发出800个请求,-c模拟800并发,相当800人同时访问,后面是测试url...原创 2018-02-24 16:40:27 · 278 阅读 · 0 评论 -
JAVA中的回调函数
JAVA中的回调函数 在以前的JAVA学习过程当中,不太注意理论知识的学习,所以在阅读thinking in java的时候,就没有太注意其中关于回调函数的介绍。今天,在阅读一段关于网络信使的源代码时,发现了有关回调函数的使用,对他产生了研究的兴趣,不过该源代码中关于回调函数的介绍很模糊,在该程序当中所使用的回调函数意义不大(该源代码很简单,而且不是很健壮)。 首先说说什么叫回调函数(...原创 2018-02-24 11:27:19 · 724 阅读 · 0 评论 -
Java中字符编码问题和中文占几个字节的问题(ASCII Unicode UTF-8 )
ASCII码在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规...转载 2018-03-16 10:54:52 · 1272 阅读 · 0 评论 -
java集成WebSocket向指定用户发送消息
一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据。 我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后返回r...原创 2018-03-01 15:54:48 · 62988 阅读 · 7 评论 -
java集成WebSocket
一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据。 我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后返回r...原创 2018-03-01 14:07:31 · 483 阅读 · 0 评论 -
Redis(window版本)安装及使用
1、打开redis官网http://redis.io/点击Download2.往下拉,找到Windows,由图片中的文字可以看出Redis项目不正式支持Windows。 但是,Microsoft开放技术小组开发和维护这个Windows端口针对Win64。3.点击后,会发现其实是跳转到了微软的GitHub地址 https://github.com/MSOpenTech/redis/releases,...转载 2018-03-08 13:53:30 · 633 阅读 · 0 评论 -
Java基础之—反射(非常重要)
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解...转载 2018-02-28 15:56:45 · 155 阅读 · 0 评论 -
深入理解java反射机制
一,java的核心机制java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection): Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在其上面运行Java代码编译后的字节码程序,java虚拟机实现了平台无关性。 Java垃圾回收(Garbage Collection):自动释放不...转载 2018-02-28 15:52:46 · 172 阅读 · 0 评论 -
Java反射机制详解
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。1、关于Class 1、Class是一个类,一个描述类的类(也就是描述类本身),封装了描述方法的Method,描述字段的Filed,描述构造器的Constructor等属性 2、对...转载 2018-02-28 15:48:54 · 146 阅读 · 0 评论 -
The word 'xx' is not correctly spelled
The word is not correctly spelled 此问题是eclipse校验单词拼写造成,如果出在配置文件中,一般会影响到程序的正常执行 解决方法:在eclipse下的Window--Preference输入spell,然后把第一个复选框“Enable spell checking“给去掉就可以了,如图: ...原创 2018-02-09 09:37:06 · 1865 阅读 · 0 评论 -
复选框全选后台删除操作
全选按钮点击判断全选按钮是否选中.点击取消收藏 能力是有限的,努力是无限的。全选按钮点击判断全选按钮是否选中.点击取消收藏 能力是有限的,努力是无限的。转载 2017-11-16 11:13:58 · 445 阅读 · 0 评论 -
50道java线程面试题
1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。欲了解更多详细信息请点击这里。2) 线程和进程有什么区别?线程是原创 2017-11-16 11:09:18 · 283 阅读 · 0 评论 -
关于java多线程的一篇不错的入门级文章
虽然都是老生常谈,而且入门级,但是讲的很不错。 一、理解多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。 多个线程的执行是并发转载 2017-11-28 15:47:26 · 199 阅读 · 0 评论 -
多线程常用方法比较汇总
从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。 但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。(这是yield的使用目的) 或者当前正在被服务的线程需要睡一会,醒来后继续被服务,这就是sleep。 sleep方法不推荐使用,可用wait。转载 2017-11-28 15:46:11 · 279 阅读 · 0 评论 -
spring一个项目调用另一个项目接口的方法,HttpClient调用
客户端代码所需jar HttpClient代码import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import net.sf.json.JSONObject;import org.apache.http.HttpEntity;import org.ap原创 2017-11-04 14:17:37 · 19208 阅读 · 6 评论 -
list!=null和list.size()>0的区别
在此特别说明一下list!=null和list.size()>0的区别: 1.list==null,意味着list压根没有地址,在堆内就不存在。 2.list.size()=0 意思堆内有list但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为零。 3.list如果为null的话,说明没有进行初始化。这是list调用任何的方法都会抛出空异常。list.size()==0说明l原创 2017-10-25 17:03:20 · 910 阅读 · 0 评论 -
Jackson json 处理全大写或不规范的JSON
面对不遵守驼峰命名规则的接口咋办?当然首先要吐槽一下,不过接口是别人定的,虽然看着不爽但还是得去适配,比如cardNumber,他返回的叫{CARDNUMBER:''}。 通过对API的研究可以通过@JsonProperty以及@JsonAutoDetect来实现。 先看代码Java代码 import com.fasterxml.ja原创 2017-10-16 15:16:39 · 1834 阅读 · 0 评论 -
极光推送java服务端开发使用
1、申请注册账号--自己去官网注册2、获得appKey和masterSecret3、代码首先明确一下推送的两个概念 消息(透传)和通知通知:发送后会在系统通知栏收到展现,同时响铃或振动提醒用户。 ( mqtt不知道能不能发送通知,还在研究中...)消息:以透传的形式传递给客户端,无显示,发送后不会在系统通知栏展现,第三方应用后需要开发者写代码才能看到。原创 2017-10-31 15:38:50 · 501 阅读 · 0 评论 -
Tomcat 虚拟主机配置
一、什么是虚拟主机一台物理机上搭建多个web站点,每个web站点独立运行,互不干扰,这些站点就是"虚拟主机"。虚拟主机的实现方式:1、基于主机名的虚拟主机:多个域名解析到同一个IP地址,在WEB服务器里添加多个站点,每个站点设定一个主机名。HTTP协议请求里包含了主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。步骤:a、配置域名与Ip的映射管理原创 2017-10-21 15:19:03 · 220 阅读 · 0 评论 -
Java删除文件夹和文件
以前在javaeye看到过关于Java操作文件的一篇文章,写的很好,但找了半天也没找到,就把找到底几篇文章整理一下,做个总结,算是一个学习备份…… 1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用) Java代码 // 验证字符串是否为正确路径名的正则表达式 private static String ma原创 2017-09-25 17:41:36 · 197 阅读 · 0 评论 -
SpringMVC+Shiro权限管理
SpringMVC+Shiro权限管理 什么是权限呢?举个简单的例子:我有一个论坛,注册的用户分为normal用户,manager用户。对论坛的帖子的操作有这些:添加,删除,更新,查看,回复我们规定:normal用户只能:添加,查看,回复manager用户可以:删除,更新normal,manager对应的是角色(role)添加,删除,更新等原创 2017-08-21 20:16:38 · 244 阅读 · 0 评论 -
springmvc的controllerAPP接口JSON返回值乱码问题(get方法)
@RequestMapping(value="/insertAndroidDm",method=RequestMethod.GET)@ResponseBodypublic Map insertAndroidDm(int user_id,String ad,HttpServletResponse response ) throws Exception{//处理响应编码问题原创 2017-08-11 20:48:03 · 1258 阅读 · 0 评论 -
多线程例子:yield
Java代码 public class Test { public static void main(String[] args) { Thread t1 = new MyThread1(); Thread t2 = new Thread(new MyRunnable()); t2.start转载 2017-11-28 15:49:51 · 448 阅读 · 0 评论 -
多线程例子:join
Java代码 package sure; import java.util.Random; public class MultThread { public static void main(String[] args) { System.out.println("in " + Threa转载 2017-11-28 15:50:46 · 192 阅读 · 0 评论 -
redis面试总结
(1)什么是redis? Redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)(2)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每原创 2017-11-16 11:05:28 · 224 阅读 · 0 评论 -
Zookeeper的集群配置和Java测试程序
概述Zookeeper是Apache下的项目之一,倾向于对大型应用的协同维护管理工作。IBM则给出了IBM对ZooKeeper的认知: Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。总之,可以用“协调”这个核心的词来形容它的作用。关于转载 2017-11-29 16:56:23 · 195 阅读 · 0 评论 -
多线程Java:使用Executors创建和管理线程
1. 类 Executors 此类中提供的一些方法有: 1.1 public static ExecutorService newCachedThreadPool() 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。 1.2 public static ExecutorServic转载 2017-11-28 16:08:18 · 292 阅读 · 0 评论 -
java多线程线程池的原理与实现
简单介绍 创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。 一个线程创建后就存在,调用start()方法就开始运行(执行run()方法),调用wait进入等待或调用sleep进入休眠期,顺利运行完毕或休眠被中断转载 2017-11-28 16:07:11 · 266 阅读 · 0 评论