自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李卫康的博客

拥有乔布斯一样的创造力

  • 博客(253)
  • 问答 (2)
  • 收藏
  • 关注

原创 经纬度坐标工具类

在开发地图的时候难免会遇到经纬度的一些算法,这里我分享一些经纬度的算法,主要包括,判断两个经纬度坐标之间的距离 判断一个经纬度坐标是否在一个圆形面中(如共享单车的电子围栏为圆形)判断一个经纬度坐标是否在一个多边形的中(电子围栏类型为多边形)具体算法:import java.awt.geom.Point2D;import java.util.ArrayList;import ...

2018-07-30 22:18:10 1207 1

原创 GPS坐标转化工具类

坐标说明目前比较流行的gps坐标为原始坐标,火星坐标,百度坐标等。原始坐标:未经过任何处理的坐标。火星坐标:中国国家XXX机构说是为了防止安全(其实也不安全),也叫中国坐标。百度坐标:百度地图在火星坐标基础上进行了偏移。类似的有高德地图坐标等。谷歌坐标:在国外就是原始坐标,但是针对国内用户,谷歌坐标需要遵守中国的规定,所以谷歌坐标在国内并不是原始坐标,而是经过了一定的偏移。下...

2018-07-02 21:47:16 3917

原创 自定义注解随笔

目前java开发已经趋向于使用注解开发,包括我们最熟悉的框架spring,已经从xml过度到了annotation,而现在最流行的微服务springcloud是基于springboot开发的一套微服务解决方案。其中的springboot的配置文件已经不复存在,而是使用配置类,配置类中使用了大量的annotation。可见annotation在开发中的重要性!创建自定义注解要创建一个自...

2018-05-02 15:47:06 307

原创 Cookie工具类

Cookie在开发中经常使用,我们知道,它是一个用在客户端的。下面编写CookieUtils工具类,方便开发。编写CookieUtils类public class CookieUtils { /** * 设置cookie * @param request * @param response * @param cookieName ...

2018-05-02 15:08:23 901

原创 线程安全的日期工具类

高并发情况下,SimpleDateFormat是线程不安全的,我们使用ThreadLocal解决线程安全问题。日期模板枚举类PatternEnum public enum PatternEnum { //g global全称,cn中国 G_DATE_TIME_DEFAULT("yyyy-MM-dd HH:mm:ss"),// 默认的年月日时分秒格式 G...

2018-05-02 14:51:34 2686 1

原创 springboot与rabbitMQ整合步骤

springboot整合rabbitMQ1、添加依赖。springboot提供了与rabbitMQ进行整合的依赖,因此需要将springboot与rabbitMQ的依赖添加到pom.xml文件中。<dependency> <groupId>org.springframework.boot</groupId> ...

2018-04-01 20:41:15 1802

原创 ubantu安装rabbitMQ步骤

rabbitMQ安装步骤(1)、要在linux下安装rabbitMQ,则需要先安装erlang安装包。因为rabbitMQ是用erlang语言写的,需要先配置erlang的环境。(2)、erlang安装:下载安装包 地址:http://www.erlang.org/downloads,我下载的是tar.gz将下载的安装包,复制到虚拟机中,然后解压。tar -xzvf otp_sr...

2018-04-01 20:28:39 1145 2

原创 Dubbo注册中心zookeeper

1、Linux基本命令回顾1.1、命令cp 文件的复制tar -czvf newDemo.tar.gz ./oldDemo 其中newDemo.tar.gz为压缩文件的文件名 ./oldDemo表示当前目录下待压缩的的oldDemo文件夹tar -xzvf newDemo.tar.gz 表示解压文件mkdir 表示创建文件目录(文件夹)su root 切换root用户(拥有

2017-09-08 22:38:24 433

原创 Alibaba 开源框架dubbo简介

1、什么是dubbo随着互联网的发展,网站应用的规模不断的扩大,常规的垂直架构已无法应对,分布式框架以及流动计算架构应运而生,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需要一个应用,将所有功能部署在一起,以减少部署节点和成本。测试,用于简化增删改查工作量的 数据访问框架(ORM)是关键垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应

2017-09-08 21:50:26 997 1

原创 手工方式实现Spring工厂创建对象

Sping的主要功能就是省去了我们自己创建对象的麻烦,下面就用一个简单的例子,利用Java的DOM解析、反射机制简单实现Spring工厂。当然这是简单实现,没有实际spring工厂那么复杂。但是原理基本就是这样了。

2017-07-21 09:05:51 501

原创 java手工实现双向链表结构

1.对于链表结构,主要有单向链表和双向链表之分,这里讨论的是双向链表,即节点中有两个应用,left引用指向前一个节点,right引用指向后面一个节点。下面是一个简单的链表:2.代码实现链表节点结构package com.lwk.linked;/*** @author 李卫康* @version 创建时间:2017年7月11日 下午9:11:21* 类说明:链表结构 (单行和

2017-07-11 22:25:57 906

原创 AOP面向切面编程,JDK的动态代理方式

1. AOP概念1.1 什么是AOP在软件行业中,AOP可以理解为面向切面编程,它是一种通过预编译和运行期动态代理实现程序功能的统一的一种技术。AOP,其实是OOP的延续。利用AOP可以使得业务逻辑代码各部分之间的耦合度降低,提高程序的可重用性,同时,提高效率。AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码。AspectJ是一个基于

2017-05-11 12:20:12 960 1

原创 exe4j工具打包java Swing编写的软件

java之所以能够跨平台运行,正式因为java虚拟机。但并不是每个客户的电脑都安装我们java程序员熟悉的JDK,因此如何让java编写的Swing软件运行在客户的PC端?对于打包exe可执行程序的步骤如下:第一步:下载exe4j工具,链接地址:点击打开链接第二步:打开exe4j运行界面如下所示第三步:建立一个exe4j输出目录,其实就是我们要打成exe的目录。在桌面建立s

2017-05-10 21:35:26 2309 1

原创 WebService专业术语以及入门程序

一.WebService概述1.WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用.2.我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单调用了一下服务器上的

2015-11-10 11:44:34 883

原创 这道Java面试题你真的理解么?好多大神都回答错误!

最简单面试题:代码:package cn.itcast.sort;public class Demo1 { public static void main(String[] args) { new Zi(); }}class Fu{//父类 Fu(){ show(); } void show(){ System.out.println("Fu"); }}

2015-10-13 11:43:23 899 1

原创 使用单循环实现冒泡排序

对于冒泡排序是最容易,也是最容易在笔试中遇到的试题:接下来我们讨论一下单循环的冒泡排序是如何实现的.直接上代码:package cn.itcast.sort;public class BubbleSort { public static void main(String[] args) { int arr[]={2,6,5,4,9}; bubbleSort(arr); f

2015-10-13 11:33:15 2267

原创 华为机试题-求两个字符串的最大公共子字符串

例题:假如String str1="ilovejava" String str2="lovejava" 那么输出结果就是lovejava.如果String str1="i love java" String str2="i java" 那么输出结果就是java代码:package cn.itcast.demo3;import java.util.Scanner;public c

2015-09-22 09:18:58 707

原创 JavaSE 揭秘枚举类型

1.模拟枚举类型定义一个类WeekDay:说明:对于WeekDay中的抽象方法nextDay() 因此类也需要声明为抽象的!当new对象的时候要重写其中的抽象方法!package cn.itcast.demo;public abstract class WeekDay { private WeekDay(){}//私有构造方法 public final static WeekD

2015-08-18 10:08:56 781

转载 面向对象的理论知识(总结)

JAVA是一种面向对象的语言,它本身具有面向对象的三大特性--封装,继承,多态。开发时,我们要记住,属性是用于存储数据的。直接被访问,容易出现安全隐患。所以,类中的属性通常被私有化,并对外提供公共的访问方法。这个方法一般有两个,规范写法:对于属性xx,可以使用setXX(),getXX()对其进行操作。      一、类的成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。局部变量存在于

2015-08-17 22:31:06 981

原创 JavaSE之内部类

内部类分类:成员内部类:在成员位置声明的类,叫成员内部类.局部内部类:在局部变量定义的类,叫局部内部类.1.成员内部类:非静态成员内部类://格式 外部类名.内部类名 对象名=new 外部类().new内部类();package cn.itcast.inner;public class InnerDemo2 { public static void main(String

2015-08-17 22:28:49 677

原创 多态&抽象&继承

多态package cn.itcast.extend;public class ExtendDemo2 { public static void main(String[] args) { A a=new B();//多条 System.out.println(a.num); a.show();//非静态 a.say();//静态方法 }}class A{ int

2015-08-17 20:36:05 673

原创 JavaSE 最容易出错的几个简单的问题

案例1.package cn.itcast.oop;public class ThisDemo { public static void main(String[] args) { Student s=new Student(); s.setName("李卫康"); s.setAge(22); String name=s.getName(); int age=s.ge

2015-08-17 15:51:30 1010

原创 JavaSE 面向对象内存图&静态变量内存图

代码:package cn.itcast.oop;public class PhoneDemo { public static void main(String[] args) { Phone p = new Phone(); //给成员变量赋值 p.brand = "小米"; p.price = 1999; p.color = "红色"; System.out.

2015-08-17 15:17:11 740

原创 oracle学习笔记 回收站&用户权限&导入导出

闪回删除的表:删除表:drop table aa;drop table aa purge; 不经过回收站,不能闪回闪回删除的表语法:--所谓闪回的意思就是还原回收站中的表FLASHBACK TABLE [schema.] TO  {[BEFORE DROP [RENAME TO table]]  [ENABLE|DISABLE]TRIGGERS} 查看回

2015-08-16 10:21:08 1023

原创 oracle 学习笔记之触发器

说明数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。触发器的类型语句级触发器:在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行 。行级触发器(FOR EACH ROW):触发语句作用的每一条记录都被触发。在行级触发器中使用o

2015-08-16 10:14:24 761

原创 oracle学习笔记之存储过程与存储函数

存储过程与存储函数说明:存储函数有返回值!存储过程没有返回值!指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。什么时候用存储过程/存储函数原则:如果只有一个返回值,用存储函数;否则,就用存储过程。1.创建存储过程用CREATE PROCEDURE命令建立存储过程。语法如下:create [or replace] PROCEDURE 过程名[(参数列表

2015-08-16 09:48:25 687

原创 oracle 学习笔记之PL/SQL程序设计

1.PL/SQL的定义:PL/SQL(Procedure Language/SQL)PLSQL是Oracle对sql语言的过程化扩展指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比过程语言简单、高效、灵活和实用。 Plsql(oracle),Tran

2015-08-15 22:31:43 796

原创 oracle学习笔记(六)

1.创建一个表不加约束create table t_user(   id number,--类型是number类型   name varchar2(20),--varchar2()可以变化   gender char(2),   birthday date default sysdate 默认是当前日期)加上约束create table t_user2(

2015-08-15 11:07:18 577

原创 oracle 学习笔记(五)

1.集合运算:UNION运算符返回两个集合去掉重复元素后的所有记录。例:查询属于部门10与部门20的所有员工信息。select * from emp where deptno=10union select * from emp where deptno=20;UNIONALL 返回两个集合的所有记录,包括重复的。例:查询工资在500~1500或在1000~2000范

2015-08-15 10:06:36 571

原创 oracle学习笔记(四)

1.常用函数1)字符函数lower 全部转为小写 select lower('HELLO') from dual; -->helloupper  全部转为大写 select upper('hello') from dual; HELLOconcat       连接两个字符串 select concat('hello','world') from dual;--> hell

2015-08-15 09:39:40 688 1

原创 oracle 学习笔记(三)

1.题目:找到薪水大于本部门平均薪水的员工。select ename from emp e1 where sal>(select avg(sal) from emp e2  where e1.deptno=e2.deptno);2.题目:找到员工表中工资最高的前三名的员工信息思路:1)先按照工资排序查询出数据 2)再把查询出的数据当做一个表  3)再查询这个

2015-08-14 23:51:41 730

原创 oracle 学习笔记(二)

1.清屏windows:host cls;linux:host clear;2.对日期的处理1)系统默认的类型:select sysdate from  dual;-->注:sysdate 是系统的当前时间 系统默认格式为:日-月-年2)to_char()的用法语法:TO_CHAR(date,'format_model')格式: 日期格式的元素

2015-08-14 23:21:31 674

原创 oracle 学习笔记(一)

1.oracle的登录与注销进入cmd命令行:登录普通用户-->1)sqlplus scott/169500 注:scott是用户名(这是oracle自带的用户) 169500是密码2)sqlplus 回撤 输入用户名: scott 输入密码: 1695003)sqlplus scott 输入密码: 169500登录管理员(拥有所有的权限)进入cmd命令行:

2015-08-14 21:57:17 652

原创 面试常见问题 死锁代码&单例模式

1.写一个死锁1)写一个锁类包含两个锁 锁A以及锁Bpackage cn.itcast.dieLock;public class MyLock { public static Object objA=new Object();//定义两把锁 public static Object objB=new Object();}2)死锁类package cn.itcast.di

2015-08-11 20:35:07 1077

原创 多线程之多窗口卖票&线程之间的通信

案例一:使用多线程完成三个窗口卖票(不能出现重复卖票以及负数票)卖票程序SellTicket 这里使用Lock类中的方法实现加锁和释放锁!package cn.itcast.thread2;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public cl

2015-08-11 20:28:32 1938

原创 Java 多线程实现的两种方式

如何写一个 线程程序:方式一:1)写一个类继承Thread类,重写run()方法2)创建这个类的对象,调用start()代码:MyThread--->提供一个构造方法调用父类的构造方法 为了是给线程提供一个名字!package cn.itcast.thread;public class MyThread extends Thread{ private String

2015-08-11 20:14:07 807

原创 输入流&输出流经典案例

1.复制单机目录package cn.itcast.test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;i

2015-08-10 20:32:53 2375

原创 IO流之复制文件

1.使用FileInputStreampackage cn.itcast.io;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStre

2015-08-10 16:54:31 478

原创 IO流之字符流

字符流家族:有时候使用字节流读取文本文件很不方便,因此就诞生了字符流.其实字符流就是字节流+编码我们通过了转化流引出了字符流(见我的博客点击打开链接) Reader-->FileReader-->BufferedReader1.一次读取一个字符&一次读取一个字符数组package cn.itcast_04;import java.io.FileReader;import java

2015-08-10 16:50:50 501

原创 IO流之字节流

字节输入流家族的基类inputStream-->fileInputStream-->BufferedInputStream字节流读取数据的的方式:1.一次读取一个字节package cn.itcast.io;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.F

2015-08-10 16:42:15 587

空空如也

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

TA关注的人

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