自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘琦的专栏

学习 总结 共享

  • 博客(123)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 泛型擦除机制

public class Test { public static void main(String[] args) { Class c1=new ArrayList().getClass(); Class c2=new ArrayList().getClass(); System.out.println(c1==c2); //因为擦除,得不到泛型的具体类型,只能得到占位符

2016-10-14 18:56:21 658

原创 泛型基本概念

public class Test { public static void main(String[] args) { //泛型 参数化类型 //泛型出现的一个很重要的原因,就是需要创建能够容纳任何类型的容器类的需求 //java5之前用的是object来存储。但是这样会导致可以存多种类型 //我们确实需要容器能够支持不同类型,但是具体存储的时候,我们希望只能存储一种,以防止错

2016-10-14 17:02:09 795

原创 JavaRTTI和反射基本讲解

public class Test { public static void main(String[] args) { new Shape().draw(); //每一个类都对应一个Class对象 我们获取这个对象之后,可以进行一系列的操作 Class class1=new Shape().getClass(); System.out.println(class1.getNam

2016-10-01 22:23:14 887

原创 Java容器类研究

public class Test { public static void main(String[] args) { Collection collection=new ArrayList(Arrays.asList(2,3,4,5)); //泛型也支持向上转型,传递子类 Integer[] is=new Integer[]{6,7,8,9,0}; collection.ad

2016-09-30 19:51:27 351

原创 java异常处理机制

public class Test1 { //任意类型的throwable对象都可以抛出,它是异常类的根类 //错误信息可以报错在异常对象的内部或者用异常类的名称来暗示 //方法如果抛出异常或者调用的方法抛出异常,那么方法就会结束,为了不让方法结束,可以用try、catch来捕获异常,也就是说如果 //调用的方法抛出了异常,这段代码必须被包裹在try语句块中来捕获可能发生的异常 //jd

2016-09-30 19:46:03 422

原创 Java正则表达式基本总结

public static void main(String[] args) { //正则表达式的学习 //java中正则表达式的\\表示一个反斜线,所以\\d 如果要表示一个普通反斜线要\\\\ //因为+在正则表达式中有特殊含义,所以要转义\\+ //只要字符串完全匹配这个正则表达式才能返回true System.out.println("-1234".matches("-

2016-09-30 19:28:06 314

原创 Java格式化输出

public static void main(String[] args) { //下面这两个方法本质也是调用了formatter对象的format方法 //怀旧风格,类似于C语言 System.out.printf("格式化输出->%d:%f",1,1.0); //java特有format,两者是等价的 System.out.format("格式化输出->%d:%f",1,

2016-09-30 18:17:32 371

原创 Java容器类总结

package test2;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.Lin

2016-09-29 21:15:27 341

原创 Java内部类语法

public class Test { class Contents{ private int i=11; public int value(){ return i; } } class Destination{ private String label; public Destination(String label) { this.label=lab

2016-09-29 10:25:47 362

原创 java枚举初解析

//enum是不是类?或者编译后的具体实现?public class EnumUse { public static void main(String[] args) { Spiciness sp=Spiciness.HOT; //为什么是一个object 编译器自动创建了tostring方法 System.out.println(sp); for(Spiciness s:Sp

2016-09-27 22:48:23 299

原创 Java之类Object方法源码分析

Object是所有类的父类,它里面的方法被所有的类拥有,或者部分覆盖重写,因此了解Object中的方法,对理解其他类的方法是十分必要的。//1.这个方法和static块结合使用,在类第一次被加载的时候,注册本地方法 private static native void registerNatives(); static { registerNatives();

2016-09-27 18:05:05 383

原创 Java native方法

Java中的方法可以用native修饰,表示此方法的实现是由c或者c++实现的,由虚拟机进行链接,一般操作底层的方法都会声明为native。而且native方法没有方法体,从外表上看,和接口中的方法一样。但是native除了是本地方法实现外,其他的行为和普通方法类似,也可以被覆盖,也就是继承的类可以对此方法进行重写。

2016-09-27 16:48:33 390

原创 数组三种实现方式

public class Tree { //先初始化所有字段,再调用构造器 //先执行静态字段初始化,再执行非静态或者普通字段的初始化 //然后调用构造器 private static int i; public Tree() { this.i=10; System.out.println(i); } static{ System.out.println(i);

2016-09-26 23:37:56 1351

原创 static、final、接口、抽象类互相结合时的细节问题总结

import java.io.Serializable;//当类中的方法是静态时,不具备多态性,也就是引用的类型是什么就是什么,不看指向的对象类型public class TestFinal { public static void main(String[] args) { Person p=new Person(); p.say(); Person s=new Studen

2016-09-26 23:35:02 504

原创 java中final和static总结

//static和final修饰符总结public class TestFinal { //final修饰的变量必须在定义时就初始化或者在构造器初始化 private static int SIZE; //如果final修饰对象引用,那么使得引用不变,而不是对象不变,对象本身还是可以修改的 private static final String str="xi"; public Tes

2016-09-26 23:10:24 337

原创 java继承中的构造器调用

class Art{ public Art() { System.out.println("art"); }}class Drawing extends Art{ public Drawing() { System.out.println("drawing"); }}//在Java的继承中,子类构造器调用父类构造器来生成父类子对象,最后的结果就是从父类构造器开始输出,然后

2016-09-26 16:31:55 309

原创 java构造器和this总结

public class Tree { //这是构造器,没有任何返回值 //构造器只能被构造器调用,不能被其他方法调用 public Tree() { //this调用构造器 //this表示当前对象,也就是对当前对象在内部的一个引用或者指针,用来方便一些操作 //Java中只能使用this在一个构造器中调用另一个构造器 //且必须放在开始,只能调用一次 this(10

2016-09-25 22:32:02 1915

原创 Java基础细节总结

public class DataTest { public static void main(String[] args) { Date date=new Date(); System.out.println(date); System.out.println(true==true); Integer in=new Integer(1); //逻辑运算符中的短路现象 S

2016-09-25 21:36:40 275

原创 Java关系运算符

java中关系运算符有 >=这些运算符都适用于基本数据类型,但是对于Boolean来说,只有==和!=可以进行比较。对于对象来说 ==和!=比较的是对象引用,也就是说如果两个引用指向同一个对象,那么就返回true,否则返回false。那么,我们如果有比较对象内容的需求呢,也就是不管几个对象,只要对象内容相同,就让两者相同,应该怎么办呢?那就是重写equals方法。equals方

2016-09-25 21:36:23 294

原创 Java八种基本类型总结

在Java中有八种基本数据类型,它们和对象不同,是在栈中直接存放数据,并且可以就行比较。布尔型:boolean 取值范围:true、false 默认值:false字符型:char 占两个字节 以Unicode方式存储,可以保存全世界任何字符整数型:byte 一个字节 8位short 两个字节 16位int   long

2016-09-25 19:40:52 355

原创 Java 变量初始化总结

Java中的变量分为两类:基本数据类型变量和对象变量。基本数据类型变量有8种,对象变量则不计其数,以及可以自己定义。当变量作为类的字段时,基本数据类型会被编译器自动赋初值,对象变量会被赋值为null。当变量作为数组元素时,基本数据类型会被编译器自动赋初值,对象变量会被赋值为null。当变量作为方法中的局部变量时,编译器就不会赋给变量初值,必须程序员自己赋值,如果没有赋值,就会编译报

2016-09-25 12:35:24 312

原创 Java StringBuilder类

Java中接口的作用:接口表示一种规范,一种协议,它规定了凡是实现此接口的类必须有的行为和动作,从而统一Java源码中的许多类和实现,可以面向接口编程和实现多态的效果。因此,如果阅读jdk源代码,我们会发现大量的接口,这些接口定义了行为和规范,使得Java中庞杂的类统一起来,具体的接口方法的实现还要看Java的实现类。自定义实现接口的类:Java中定义了大量的接口,这些接口都要相应的许

2016-09-23 23:12:26 676

原创 Java String类和StringBuilder初步认识

字符串操作是计算机系统中最常见的行为,而在Java应用广泛的web系统中更是如此,因此Java中的String类的应用十分广泛。string对象是不可变的,那些对string操作的方法本质上并没有修改对象,而是创建了一个新的对象然后返回,也就是原来的引用指向的对象并没有改变因此 string对象只读不可改String str="liuqi";//这里实际上是返回了一个新的对象,而st

2016-09-23 21:52:36 262

原创 LintCode(3):翻转字符串

在编程题中,对字符串的各种操作和应用场景很多,字符串的处理是编程的一大考点,而翻转字符串则是最简单的题型。因此本题只是一个入门在下一篇文章中,我会系统总结Java中对于字符串的类和函数支持,以便在实际编程中能够用合适的方法最快的解决问题public class ReverseString { public static void main(String[] args) { Sys

2016-09-23 12:48:36 679

原创 编程题中输入数据——Java、Scanner和StringTokenizer

在C语言中,从控制台读入数据用的是scanf函数,c++中用的则是cin流。而Java I/O类和接口众多,一般读取控制台数据,用Scanner类。下面是具体用法  //针对多行数字输入来进行处理public class ScannerTest { public static void main(String[] args) { Scanner in=new Scanner(Sys

2016-09-23 12:42:37 1041

原创 基于链表、数组实现队列、循环队列

队列是一种先进先出的数据结构,它和栈的性质正好相反,但是两者却经常结合在一起实现一些特殊的操作。1.队列的接口public interface QueueADT { //入队 public void enqueue(Object element); //出队 public Object dequeue(); //返回队首元素 public Object first(); //

2016-09-22 19:14:36 3655

原创 基于数组和链表两种方式实现栈

栈是一种先进后出的数据结构,在实际编程栈有很广泛的用处,Java栈已经帮我们实现好了stack类。实现栈的两种方式,基于数组实现和基于链表实现。1.stack接口public interface StackADT { //入栈操作 public void push(Object element); //出栈操作 public Object pop(); //判断是否为

2016-09-22 17:06:43 1876

原创 LintCode(2):单链表相关操作

单链表的相关操作是面试中经常被提问的内容,也是反映应聘者数据结构基本能力很好的途径,因此系统归纳总结单链表的一些常用操作和实现,是十分必要的。package DataStructure;import java.util.Stack;import javax.swing.text.AbstractDocument.LeafElement;//Java语言实现单链表以及各种操作pub

2016-09-22 12:09:26 223

原创 LintCode(1):递归、斐波那契

在了解了Java的虚拟机内存模型后,就理解了方法调用的过程。方法调用:就是将参数、局部变量等信息压入Java方法栈中,因此,随着方法调用深度增加,方法栈也会越来越深。一:用递归方式实现斐波那契数列,这种方式由于大量重复计算,会导致效率极低。//递归方式实现斐波那契 public int fibonacciByRecursion(int n) { if(n==1){

2016-09-21 10:44:07 213

原创 LintCode(0):准备篇:Java内存模型分析

只有理解底层的细节,才能更好的理解程序和代码,因此在研究Java代码和算法之前我们先研究一下Java的内存模型。本文参考周志明的《深入理解Java虚拟机·第二版》,这是一本Java开发人员进阶的必备书籍。一:为什么需要理解Java虚拟机内存模型在c和c++的开发中,程序员对内存操作拥有绝对的控制权,需要自己手动为生成的对象设置生命周期以避免内存泄漏和内存溢出问题。而Java在虚拟机的管

2016-09-20 21:48:11 354

原创 如何写出复杂业务查询的sql语句

如何写出复杂的sql语句:首先要建立一个概念,复杂的sql语句也是最基本的sql语句连接而成,所以最重要的是先要理清思路和逻辑,弄清自己要查哪几张表,要用哪几个字段,表之间如何关联,将这些弄清,然后由简单到复杂,从最基本的sql写起,通过找共同点,实现表关联等。select后是自己需要的字段from后是自己需要查询的多张表或者自己子查询得出的结果集 where后

2016-07-29 14:56:11 5869 2

原创 程序中存储和处理精确浮点数

对于程序中的小数点类型存储:在数据库中使用decimal(6,4)来存储小数点类型在java bean中使用BigDecimal类型 add 加subtract 减multiply 乘divide 除setScale 设置小数点位数如果使用string类型来接收小数点类型 会出现不精确的现象 比如0.499999这种

2016-07-27 10:21:46 352

原创 jstl标签c:choose

//jstl的选择标签 可以根据后台传递的数据动态显示指定的值 1 2 /td>

2016-07-25 19:17:38 286

原创 mysql之select from where

select from wherefrom后可以是多张表,或者结果集 where是对结果集进行限定 从而得出最终的结果集 select后的字段值就是在最终的结果集中得出的新的结果集

2016-07-25 15:23:40 1473

原创 mysql语句之group by

mysql select语句中的group by关键字 可以这样理解:group by是对查询的结果集按照某个属性进行切割 从而分成多个结果集 然后对每个结果集返回一行数据 作为最终结果 一般结合列函数使用 将分割后的结果集进行求和或者其他列运算 从而得到这个子结果集的某些特性having子句可以对group子句进行限定 where是先限定之后再分组 havin

2016-07-25 15:17:45 251

原创 项目管理任务分配工具——jira

JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。JIRA中配置灵活、功能全面、部署简单、扩展丰富,其超过150项特性得到了全球115个国家超过19,000家客户的认可。

2016-07-25 14:23:52 5502

原创 如何导入svn上的maven项目到eclipse中

1.配置maven2.从svn检出项目到本地3.配置server4.import已存在的maven项目 5.使用工作集

2016-07-25 11:43:31 505

原创 实习总结——解决问题与总结知识

工作与学习,解决问题与知识总结。工作的过程就是学习的过程,我们在工作中解决问题,接触新知识,最好的结合工作和学习的方式就是,在当天下班之后,把当天遇到的新知识进行总结消化,这样才能在工作中最大效率的提升自己。如果只是简单的通过搜索等解决了问题,而不加以消化总结,这样只能是为公司创造了一天的价值,而没有提升自己的能力。养成习惯:每天完成一个任务或者下班之后画点时间把今天的知识点总结一

2016-07-25 11:28:19 833

原创 实习总结——sql语句的重要性

java web开发,对于后台部分,最重要的就是sql语句。我们可以这样理解,程序是对数据的各种处理,数据是对现实世界的模拟。而在java web开发中,数据的存储离不开数据库,所以我们的开发也离不开sql语句。因此能够掌握高级sql语句,才算是一个合格的java开发工程师。高级sql语句就是各种表之间的关联、高级函数的使用以及如何根据业务组织它们,需要自己在两个方面提升,

2016-07-25 10:59:22 1684

原创 jquery ajax使用范围

对于与后台交互的请求 都可以使用ajax,养成使用ajax的习惯//删除 function delete_info(id,borrowName){ if(window.confirm('你确定要删除项目名为:'+borrowName+'的项目吗?')){ $.ajax({ url : "/borrowInfo/deleteInfo", type : 'get

2016-07-21 17:21:44 462

贪吃蛇code

贪吃蛇代码 方便java初学者使用学习 代码不多 功能也很简单

2014-09-16

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

TA关注的人

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