自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李智正在学习的博客

扶我起来,还能学习

  • 博客(85)
  • 收藏
  • 关注

原创 Java计算代码行数

看到一个计算代码行数的机试题目,demo如下:package demo;import java.io.*;/** * 统计代码行数demo * author:lizhi */public class StatisticCodeLines { public static int normalLines = 0; //有效程序行数 public static int whiteL

2017-08-04 16:12:57 1697

原创 系统学习Spring(三)——Bean的高级装配

在软件开发中,常常设置不同的运行环境:开发环境、预发环境、性能测试环境和生产环境等等。不同的环境下,应用程序的配置项也不同,例如数据库配置、远程服务地址等。以数据库配置为例子,在开发环境中你可能使用一个嵌入式的内存数据库,并将测试数据放在一个脚本文件中。例如,在一个Spring的配置类中,可能需要定义如下的bean:@Bean(destroyMethod = "shutdown")public D

2017-05-15 16:54:32 943

原创 系统学习Spring(二)——装配Bean

任何一个成功的应用都是由多个为了实现某个业务目标而相互协作的组件构成的,这些组件必须相互了解、能够相互协作完成工作。 例如,在一个在线购物系统中,订单管理组件需要与产品管理组件以及信用卡认证组件协作;这些组件还需要跟数据库组件协作从而进行数据库读写操作。 在Spring应用中,对象无需自己负责查找或者创建与其关联的其他对象,由容器负责将创建各个对象,并创建各个对象之间的依赖关系。 通俗的来说,

2017-05-10 12:38:43 886

原创 系统学习Spring(一)

对于Java开发者来说,这是一个好的时代。在过去的20年中,Java经历了好的时候,也经历了坏的时候。尽管有一些粗糙的地方,比如:Applets、 EJB、JDO和无数的日志框架,Java有丰富多样的历史,有很多企业已经建立的平台。其中,spring一直 都是其中最重要的组成部分。在早期,Spring被创建用于替代笨重的Java企业技术,比如EJB。相比于EJB,Spring提供了一个更加精

2017-05-09 17:02:06 5139 3

转载 Java开发必会的Linux命令

1.查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件。find . -name “*.xml” 递归查找所有的xml文件find . -name “*.xml” |xargs grep “hello world” 递归查找所有文件内容中包含hello world的xml文件grep -H ‘spring’ *.xml 查找所以有的包含sp

2017-04-29 14:01:38 668

原创 userId分库,怎么通过其他字段查询

用户中心是几乎每一个公司必备的基础服务,用户注册、登录、信息查询与修改都离不开用户中心。当数据量越来越大时,需要多用户中心进行水平切分。最常见的水平切分方式,按照userId取模分库:例如:通过userId取模,将数据分布到多个数据库实例上去,提高服务实例个数,降低单库数据量,以达到扩容的目的。这样水平切分之后,userId属性上的查询可以直接路由到库,如上图,假设访问uid=10的数据,取模后能够

2017-04-18 10:14:25 2922

转载 学习数据库必须掌握的54条SQL查询语句

--1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。select emp_no,emp_name,dept,isnull(convert(char(10),birthday,120),'日期不详') birthdayfrom employeeorder by dept--2、查找与喻自强在同一个单位的员工姓名、性别、

2017-04-07 11:34:13 848 1

原创 Java基于zxing生成二维码demo

QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化。QR码的样子其实在很多场合已经能够被看到了,我这还是贴个图展示一下:这个图如果被正确解码,应该看到百度。具体的也不说什么了,百度一大把,直接上源码~package com.lincoln.Untils;import com.google.zxing.BarcodeFormat;import com.g

2017-03-23 19:47:04 722

原创 Java网易短信接入demo

由于最近使用云信添加短信接入功能,记录一下一些点避免时间久了忘记。发短信package com.lincoln.Untils;import com.alibaba.fastjson.JSON;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client

2017-03-23 10:21:21 2959

原创 Java使用websocket和WebRTC实现视频通话

最近这段时间折腾了一下WebRTC,这两天终于是抽了时间把WebRTC搞定了,去年就想弄的,但是确实没时间。看了网上的https://apprtc.appspot.com/的例子(可能需要翻墙访问),这个例子是部署在Google App Engine上的应用程序,依赖与GAE的环境,后台的语言是python,而且还依赖Google App Engine Channel API,所以无法在本地运行,也

2017-03-11 12:08:55 22522 6

转载 spring ioc原理

最近,买了本spring入门书:spring In Action 。大致浏览了下感觉还不错。就是入门了点。Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning,但怀着崇敬的心情和激情通览了一遍。又一次接受了IOC 、DI、AOP等Spring核心概念。 先就IOC和DI谈一点我的看法。IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有些书

2017-03-10 17:13:03 388

原创 Volatile小结

1)Java 中能创建 Volatile 数组吗?能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。 2)volatile 能使得一个非原子操作变成原子操作吗?一个典型的例子是在类中有一

2017-03-03 14:25:29 987

转载 为什么volatile不能保证原子性而Atomic可以?

在Java中long赋值不是原子操作,因为先写32位,再写后32位,分两步操作,而AtomicLong赋值是原子操作,为什么?为什么volatile能替代简单的锁,却不能保证原子性?这里面涉及volatile,是java中的一个我觉得这个词在Java规范中从未被解释清楚的神奇关键词,在Sun的JDK官方文档是这样形容volatile的: The Java programming language

2017-03-02 15:55:07 469

转载 数据库系统分层优化

网上有丰富的数据库优化方案,但是大多都是零零碎碎,系统地介绍数据库优化的很少。笔者根据自己的经验,以及参考了其他高手的优化文章,整理一份系统的优化方案。数据库优化的目的是提高DB的工作效率,减少响应时间。基于此,笔者认为应该从如下四个层次来优化数据库性能。硬件层面优化 操作系统/DBMS层面优化 DB设计层面优化 程序设计层面的优化 硬件层面优化 该层面的优化是最底层的,包括

2017-02-24 14:29:49 652

原创 希尔排序

希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位原始的算法实现在最坏的情况下需要进行O(n2)的比较和交换。之后对算法进行了少量修改,可以使得性能提升至O(n

2017-02-20 22:10:11 375

原创 虚拟黑车Java版

既然是发的黑车,磁力链接那套就不必仔细研究了, 磁力链接其实类似于这样(下面的这个是真车): magnet:?xt=urn:btih:3AEA94481B0A406C66083F14C6F42635C14562C2说白了就是随机填充 40 个字母或数字,不过有一定几率会发出真车。代码实现: public class OldDriver { public static void mai

2017-02-18 15:28:30 877

转载 必须了解的数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空间(3)数据表、数据字段必须加入中文注释 解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的

2017-02-16 14:17:43 455

转载 学习笔记之《高效程序员的45个习惯》

有本关于敏捷开发方面的书非常不错《高效程序员的45个习惯-敏捷开发修炼之道》,Venkat Subramaniam和Andy Hunt著,该书简短、易读、精炼、深入,深刻且实用。对于想要采用敏捷方法的人很有价值。此书通过常理和经验,阐述了为什么应该在项目中实用敏捷方法。更难得的是,这些行之有效的实战经验,竟然从一本书中得到了。如果能拿这些习惯在项目中一以贯之,肯定会受益匪浅。下本罗列该书这45个习惯

2017-02-15 15:27:08 562

原创 apache poi操作(适用于word 2007)

import java.io.FileOutputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apac

2017-02-14 17:10:57 712

原创 2016年总结

在2016这一年技术长进了。Java:从SSH框架转到SSM,并且见识了基于Spring boot的威力,补了一下Java基础,正在接触算法。Linux:记住了越来的越多的Linux命令,能独立维护并处理部分服务问题了。Python:终于算是入门了,入门了却没看到出门在哪里。JS&HTML&CSS3:这似乎不是我该关注的问题,能独立解决UI上的问题已经够了。完成了至少三个项目,从pc端到web端到微

2017-01-14 10:24:05 684

转载 jdk1.8的HashMap和ConcurrentHashMap

转自乒乓狂魔本文针对jdk1.8的ConcurrentHashMap1.8的HashMap设计1.1 整体概览HashMap采用的是数组+链表+红黑树的形式。数组是可以扩容的,链表也是转化为红黑树的,这2种方式都可以承载更多的数据。用户可以设置的参数:初始总容量默认16,默认的加载因子0.75初始的数组个数默认是16(用户不能设置的)容量X加载因子=阈值一旦目前容量超过该阈值,则执行扩容操作。什么

2017-01-07 01:09:13 2151

原创 高级for循环使用remove/add 问题

今天在高级for循环中用了一下remove发现报错,写了个demo测试看: List<String> a = new ArrayList<String>(); a.add("1"); a.add("2"); for (String temp : a) { if("1".equals(temp)){ a.remove(temp);} }此时代码是没有问题的,运行正常

2016-12-29 17:38:29 4073 1

原创 HashMap面试题总结!

HashTable和HashMap的区别有哪些?HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。理解HashMap是Hashtable的轻量级实现(非线程安全的实现,hashtable是非轻量级,线程安全的),都实现Map接口,主要区别在于:1、由于HashMap非线程安全,

2016-12-25 11:06:01 1066

原创 HashMap学习笔记

hashmap的 扩容机制上一篇说了,hashmap的构造器里指明了两个对于理解HashMap比较重要的两个参数 int initialCapacity, float loadFactor,这两个参数会影响HashMap效率,HashMap底层采用的散列数组实现,利用initialCapacity这个参数我们可以设置这个数组的大小,也就是散列桶的数量,但是如果需要Map的数据过多,在不断的add之后

2016-12-25 10:49:44 411

原创 HashMap源码学习总结

什么是Map?Map用于保存具有key-value映射关系的数据首先看图!可以看出Java 中有四种常见的Map实现——HashMap, TreeMap, Hashtable和LinkedHashMap:·HashMap就是一张hash表,键和值都没有排序。 ·TreeMap以红黑树结构为基础,键值可以设置按某种顺序排列。 ·LinkedHashMap保存了插入时的顺序。 ·Hashtable

2016-12-25 00:10:22 519

转载 nginx 基本入门(至今为止见过最好的 nginx 入门文章,没有之一。)

本文转自StuQ 这篇教程简单介绍了 nginx 并且讲解了一些 nginx 可以解决的简单任务。这里,我们假设 nginx 已经安装在读者的机器上。如果没有,可以看一下如何安装 nginx。这篇教程主要讲解的是如果启用和停止 ngixn,和重新加载配置,描述配置文件的基本结构和怎样搭建一个 nginx 静态辅助器,怎样配置 nginx 作为一个代理服务器来。 nginx 有一个主进程和其他子进程

2016-12-19 10:18:48 39694

原创 Java泛型总结

一. 我们为什么需要泛型?首先,我们看下下面这段简短的代码:package CoreJava.day_5;import java.util.ArrayList;import java.util.List;/** * @author 李智 * @date 2016/12/15 */public class GenericTest { public static void main(S

2016-12-15 10:50:32 2054 3

翻译 Java 8 最佳技巧

翻译文章在过去的几年中,我一直使用Java 8 进行了很多的编码工作,用于开发 新应用 和 迁移遗留应用 ,我觉得是时候写一些有用的”最佳实践”。我个人不喜欢”最佳实践”这个术语,因为它意味着“一刀切”的解决方案,当然编码工作是不会这样的–这是因为我们开发人员会想出适合我们的方案。但我发现我对Java8特别的喜欢,它让我的生活更轻松一点,所以我想就此话题展开讨论。OptionalOptional是

2016-12-14 16:59:29 528

原创 Java反射学习总结(五)

使用反射实例对象 使用反射机制,我们可以在运行时动态加载类并且实例化对象,操作对象的方法、改变类成员的值,甚至还可以改变私有(private)成员的值。我们可以用 Class 的 newInstance() 方法来实例化一个对象,实例化的对象是以 Object 传回的,例如:Class c = Class.forName(className);Object obj = c.newInstance

2016-12-05 23:29:07 525

原创 Java反射学习总结(四)

类加载器Java在需要使用类的时候,才会将类加载,Java的类加载是由类加载器(Class loader)来完成的。 当我们在命令模式下执行java xxx指令后,Java执行程序会尝试找到jre安装的所在目录,然后找到jvm.dll(假设在jre目录下的bin\client下),接着启动jvm并进行初始化操作,接着会产生bootstrap loader,bootstrap loader则会加载

2016-12-05 22:40:28 431

原创 Java反射学习总结(三)

Class对象表示所加载的类,取得Class对象后,我们就可以愉快的取得与类相关的信息了,就像包(package,package也是类名的一部分哦~),构造方法,方法,属性等信息,而每一个信息,也会有相应的类别形态,比如包对应的是 java.lang.Package,构造方法对应的是java.lang.reflect.Constructor,成员方法对应的是 java.lang.reflect.Me

2016-12-04 22:52:18 451

原创 Java反射学习总结(二)

使用 Class.forName() 加载类在一些应用中,我们无法事先知道使用者将会加载什么类,而必须让使用者指定类名类加载类,我们就可以用Class的静态forName()方法来实现动态加载类,如下:package CoreJava.day_2;/** * @author 李智 * @date 2016/12/4 */public class ForNameDemo { publi

2016-12-04 22:13:02 525

原创 Java反射学习总结(一)

Java提供的反射机制允许我们在运行时期动态载入类,检测和修改它本身状态或行为,要举反射机制的一个实例的话,就是在整合开发环境中所提供的方法提示或者类的检查工具,另外像jsp中的javabean自动收集请求也用到了反射,还有我们经常用的框架也可以看到反射机制的使用,这样可以达到动态载入使用者自己定义的类的目的。  在我们拿到一个类时,即使对它一无所知,但是其实他本身就包括了很多信息,Java在需要使

2016-12-04 00:10:25 546

原创 为什么要用spring,springMVC?

今天被公司派到别的公司谈项目,刚去就先被面试了一波(原来是把我外包到别的公司做项目了 -。-),面试时候问了我一个问题,很简单,就是问我java开发web项目为什么要用spring,springmvc?   好吧,当时我人直接懵逼了,什么鬼问我这个!!不就是可以省去很多功夫让我们踏踏实实写业务代码嘛?   当时就随便回答了一些,回到公司仔细想想,发现还有挺多可以想,可以讲的

2016-11-30 22:36:50 23701 27

原创 Java的静态/动态绑定

今天看到《Java核心技术I》书上的动态绑定,意思就是当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢?程序会在运行的时候自动选择调用某个方法(根据方法表)。   看完这里不由自主的想到,有动态肯定也就有静态吧,于是去求助了下google,首先看了下什么是绑定:   绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对

2016-11-28 23:52:15 802

原创 mysql 如何插入一列自增序号

今天看到朋友问的一个问题,“mysql 加一列 叫序号 然后序号自增 怎么搞?”,由于他主要用的是oracle,所以不太了解mysql的用法,然后我就告诉他用rownum就好了,但是他说用了这个没得到效果。我想了一下 没啥啊。他说他就想在查询结果中加一个序号列 实现自增,于是我自己建了张表实验一下。只给了id和name两个字段,方便测试。随便插入了几条数据(设置了utf-8的格式输入中文就直接???

2016-11-24 16:50:33 13713

原创 关于Ajax的cache参数的测试

其实这次做这个测试是因为和同学谈论@requestbody时引发的一个笑话,我之前一直以为ajax中的dataType: 'json'是传输去后台的数据格式,后来分分钟被打脸,查了一下百度,才知道原来dataType: 'json'是期望返回的数据类型,由此才发现原来ajax并没有平常用的那么简单。 首先我们来看一下什么是Ajax: AJAX = 异步 JavaScript 和 XML。 AJ

2016-11-23 20:55:49 6739

原创 RabbitMQ学习笔记

RabbitMQ注解方式配置说明 http://blog.csdn.net/zh350229319/article/details/52230674 RabbitMQ中 exchange、route、queue的关系 http://www.360doc.com/content/14/0608/22/834950_384932402.shtml 消息队列RabbitMQ与Spring集成 h

2016-11-02 14:29:57 435

原创 关于Navicat Premium查看表字段注释

SHOW FULL COLUMNS FROM 表名该sql语句,查询即可成功。

2016-10-25 16:00:56 36972 2

原创 Linux(centos6.5)服务器快速安装mysql

之前是用的windows服务器,图形化配置起来还挺快的,现在转用了centos6.5,指令行操作,刚开始有点懵逼,查阅了些资料后,发现原来如此的简单~ 步骤如下: 系统: CentOS 6.5 Arch: x86_64 and i386 1.登录到服务器并下载rpm包(URL: http://dev.mysql.com/downloads/repo/)yum install wge

2016-10-13 11:05:00 591

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除