自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我只是个程序员。

一边学习,一边总结……

  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 SE高阶(14):JDBC—②增删改查操作、ResultSet的运用

JDBC中执行SQL语句有两种方式:Statement和PreParedStatement。在以后的项目中,执行SQL语句都会封装在DAO层(数据库访问层)中,接下来的使用案例都会直接以封装的形式来展示。Statement案例插入语句Insertpublic int insert(User u) { Connection con = JdbcUtils.getConnection

2017-04-29 01:29:02 728

原创 SE高阶(13):JDBC—①数据库连接操作与常用类的介绍

JDBC是什么               JDBC(Java数据库连接)是一组用于执行SQL语句的Java API,Java只提供了接口,具体的数据库驱动程序是由各数据库厂商实现。这就是一个典型的多态应用。JDBC可以为多种关系数据库提供统一访问,我们只需要使用接口提供的方法即可,是非常典型的面向接口编程。如果使用的是标准SQL语句,则只需要更换数据库JDBC包就能做到跨数据库,非常方便。J

2017-04-29 01:28:45 653

原创 SE高阶(12):Annotation(注解)的简单了解和使用

(一)Annotation(注解)的作用注解的作用是修饰编程元素。编程元素就是:包、类、构造方法、方法、成员变量等。Annotation能对这些元素进行标识,JVM在执行时可以读取标识并执行相应处理。注意注解和注释是不同的:注释是开发人员用于方便阅读源代码,不会对程序产生任何影响。注解可以在源文件中加入一些信息,例如使用框架开发时,我们都是通过配置文件进行对象关系组合映射等功能,而通过注解

2017-04-28 00:26:39 684

原创 SE高阶(11):Java反射机制—动态获取类的所有信息

反射机制的作用:反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java的反射机制。Java反射机制主要提供了以下功能:在运行时判定任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判定任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理

2017-04-28 00:26:14 1500

原创 SE高阶(10):类加载机制—类加载器、类初始化和URLClassLoader

说到类加载就必须得了解JVM(虚拟机)的作用,我们使用eclipse或者命令行调用命令javac.exe运行一个Java程序时,系统会启动虚拟机来加载类,然后运行在虚拟机进程中。加载类的过程的就是类加载机制了。虚拟机的特点:每启动一次Java程序,都会单独启动一个JVM进程去加载。可以在两个类中分别写两个死循环,任务管理器中可以看到两个JVM进程(javaw.exe)在运行。因为JVM

2017-04-28 00:25:58 677

原创 SE高阶(9):Java自带的强大工具类(重点了解Files和Paths)

Java中有许多工具类可以帮助我们进行快捷开发,甚至可以基于原始方法进行二次开发,用于不同的使用场景。所以掌握一些常用的工具类对平常编程是很有用处的。接下来会了解一些Java的常用工具类。感兴趣的可以去查看方法的实现源码。想了解更多的类,通过JDK文档去查看java.util路径下的类或者百度。工具类:我们可以通过Java的命名风格来得知类的作用,例如Arrays是用于操作

2017-04-28 00:18:39 4007

原创 SE高阶(8):多线程—⑤线程池的创建、启动和使用场景

线程池的作用:  减少创建和销毁线程时消耗的时间以及系统资源的开销,提高性能,尤其是创建大量生存期很短的线程时,更应该使用线程池。 线程池和数据库连接池有类似之处,线程池在启动时会大量创建一些空闲线程,和以前自己创建线程然后传入Runnable对象不同的是,线程池接收一个Runnable对象或者Callable对象,然后通知线程池中空闲线程去执行run()或者call()方法,执行结束后线程并

2017-04-28 00:16:12 798

原创 SE高阶(7):多线程—④ThreadLocal类对于线程同步的作用

ThreadLocal的作用ThredLocal是多线程中为了保证线程安全而提供的工具类,它可以代表一个线程局部变量,该类支持泛型。每个线程中都有一个自己的ThreadLocalMap类对象,可以将线程自己的对象保持到其中,各管各的,线程可以正确的访问到自己的对象。 将一个共用的ThreadLocal静态实例作为key,将不同对象的引用保存到不同线程的ThreadLocalMap中

2017-04-26 12:37:40 514

原创 SE高阶(6):多线程—③线程通信(协调运行)

Java的多线程通信方式同步机制条件控制线程协调运行(wait/notify机制、Lock类和Condition对象)管道流同步机制多个线程通过synchronized关键字这种方式来实现线程间的通信。例如两个线程并发访问的共享资源属于同一个类,把该类对象作为同步监视器,每次只能一个线程对该对象锁定,保证两个线程有序执行,算是一种简单通信。但有时候线程会遇到满足条件之后才执行的情况

2017-04-26 12:21:20 561

原创 SE高阶(5):多线程—②线程同步、死锁、volatile关键字

线程同步的作用在多线程中,当两个及以上线程并发访问同一个资源时,由于线程调度具有不确定性,尽管有控制线程的方法,但也会导致线程冲突,导致线程不安全,所以就有了线程同步机制解决该问题。实现线程同步机制的方式使用关键字synchronized。使用Lock类来实现加锁。synchronized的用法:作为同步代码块:synchronized(obj){},把并发访问共享

2017-04-25 22:51:09 420

原创 SE高阶(4):多线程(并发)—①创建启动方式和控制线程方法

进程概念进程是操作系统运用程序实例,拥有独立的内存空间和数据,一个进程包含多个子线程,不同进程相互独立。进程的特征:独立性:进程是系统中独立存在的实体,拥有独立的资源,每个进程都有自己的内存空间。一个进程不能直接访问另一个进程的内存空间。动态性:进程是一个正在系统中活动的指令集合,有时间概念,具有生命周期和不同状态。程序是一个静态的指令集合,不具备这些状态。并发性:多个进程

2017-04-25 22:49:51 858

原创 SE高阶(3):NIO流—使用NIO执行读/写操作代码实例

代码演示Buffer //创建字节缓冲区,容量1024 ByteBuffer buff = ByteBuffer.allocate(1024); System.out.println(buff.position());//读写起始点 System.out.println(buff.limit());//界限位置 //字节缓冲区放入3个int数值 buff.putInt(1

2017-04-25 22:47:48 605

原创 SE高阶(2):NIO流—理解Buffer、Channel概念和NIO的读写操作方式

简要了解了NIO流体系,阐述了NIO流和IO流的不同点,理解Buffer(缓冲区)是如何处理读写操作的,关于通道和字符集对于缓冲区的作用。代码演示放在nio代码示例中。和nio有关的知识点都放在java.nio包中,大体分类如下java.nio 包:包含各种类型的Buffer(缓冲区)java.nio.channels包:包含各种Channel(管道) 和Selector(选择器)ja

2017-04-25 22:46:03 2704

原创 SE高阶(1):用于读写配置文件的特殊Map——Properties类

Properties类的特点和作用Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表以键值对形式存储,key和value都是字符串。一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。 只要配置文件以key=value的形式来作为属性列表,Properties都可

2017-04-25 22:45:08 3165

原创 Java基础(22):泛型—泛型为何不能应用于静态申明的实例解析

先给一个例子,在静态变量中和静态代码块中使用泛型。public class Test { public static T name; //error public T sex ; static { T ab; //error }}报出异常:不能使一个静态引用指向一个非静态的类型 T。静态和非静态之分就在于静态是编译时类型,动态是运行时类型。T代表未知类型,如果可以用于静态申明

2017-04-25 22:43:06 5389 9

原创 Java基础(21):泛型—泛型的定义、用法与类型通配符的使用方式

泛型是什么?泛型本质是指类型参数化。意思是允许在定义类、接口、方法时使用类型形参,当使用时指定具体类型,所有使用该泛型参数的地方都被统一化,保证类型一致。如果未指定具体类型,默认是Object类型。集合体系中的所有类都增加了泛型,泛型也主要用在集合。泛型的定义泛型类:public class Demo {} ,T表示未知类型。泛型接口:public interface Im

2017-04-25 22:40:24 625

原创 Java基础(20):集合—详解Map体系及方法entrySet、keySet、values

简单回顾Map集合:Map表示映射关系,以键值对的方式来保存数据。key和value一一对应。key是唯一的,不可重复,而value是可重复的,可以被多个key关联。虽然Map是放入两个数据,但是却以key作为操作对象,value只是作为key的关联值。通过查看,会发现Set与Map的实现类很相似,Set实现类的底层操作就是用Map来实现的,

2017-04-25 22:39:17 729

原创 Java基础(19):集合—Collection体系:Set、List、Queue特性和实例

建议使用目录功能来查看内容。Set(集)特点:Set集合存储元素的特性是无序且不可重复的。Set集合的总体方法与Collection差不多,只有TreeSet新增了较多方法。主要实现类:HashSet:元素是无序的,因为底层操作是HashMap来完成的,所以没有重复值,但可以存入null。LinkedHashSet:是HashSet子类,使用链表维护元素次序,元

2017-04-25 22:37:02 636

原创 Java基础(18):集合(容器)—Collection和Map两大体系介绍和用法

集合类的作用集合类也叫做容器类,和数组一样,用于存储数据,但数组类型单一,并且长度固定,限制性很大,而集合类可以动态增加长度。集合存储的元素都是对象(引用地址),所以集合可以存储不同的数据类型,但如果是需要比较元素来排序的集合,则需要类型一致。集合中提供了统一的增删改查方法,使用方便。支持泛型,避免数据不一致和转换异常,还对常用的数据结构进行了封装。集合框架体系的组成集合框架体系是

2017-04-25 22:35:13 1097

原创 Java基础(17):常用类—System类的标准流重定向与常用方法

System类的作用System 类提供了标准输入、标准输出和错误输出流。对外部定义的属性和环境变量的访问。加载文件和库的方法。还有快速复制数组的一部分的实用方法。了解System.in 、 System.out 、System.err它们都属于System类的静态变量。System.in   标准输入流(从键盘输入)System.out  标准输出流 (输出到控制台)

2017-04-25 22:33:26 1302

原创 Java基础(16):IO流—采用RandomAccessFile类读写文件,功能更强

RandomAceessFile类的作用:RandomAccessFile能对文件内容的任意位置进行读写,而IO流是按顺序读取字节,所以只读写文件部分内容使用RandomAccessFile很方便。但该类也仅限于读写文件,不能像IO流一样,可以访问内存、网络和文件。RandomAccessFile类的常用方法:getFilePointer() :获取当前文件的记录指针位置see

2017-04-25 22:28:11 1940

原创 Java基础(15):IO流—掌握对象序列化和反序列化操作

在网络通信中,任何数据都是以二进制的形式来传输的,而对象序列化可以把内存中的Java对象转成二进制流,而二进制流可以存放在本地磁盘文件中,通过网络或者程序来获取该二进制流后,都能将该二进制流恢复成Java对象。序列化的这一过程就是将对象状态信息转换为可存储或传输的过程。对象序列化的作用:对象序列化可以把对象以字节序列的形式永久保存在磁盘中。对象序列化可以用于在网络中传输对象。对

2017-04-25 22:21:22 529

原创 Java基础(14):IO流—理解I/0概念和掌握相关类的作用(附有操作代码)

在Java中如果要进行输出和输入操作,就需要使用到IO流,例如第一次写的语句System.out.println("hello,world")就是一个典型的输出分流。IO流是Java的重点知识,除了要理解输入与输出的概念,还需要多次编写代码还能更好的理解。IO体系中涉及到的类很多,但核心体系就是由File、 InputStream 、OutputStream、Reader、Writer和Seria

2017-04-09 13:46:46 1464

原创 Java基础(13):Java的自动装箱/拆箱机制、整型包装类缓存机制

为什么会出现包装类?在集合中,都是以对象作为元素,数组也同样可以添加元素,但功能很少,且类型必须一致。在没包装类之前,我们是无法直接往集合中添加值类型的元素的,需要自己写一个类,该类的成员变量为值类型。还有集合中常用的get(Object obj)的方法,需要的是一个Object类型,那么值类型是不能作为参数的。所以后来就出现了包装类。包装类的作用:使基本类型具备对象的特性,让我们以对象的方式去操作值类型。增加了许多操作值类型的方法,例如Integer类很方便的获取int类型的最大值和最小值,Cha

2017-04-09 02:01:15 711

原创 Java基础(12):可变字符串—StringBuffer与StringBuilder的异同点

String是不可变类,String对象都是常量,就像“ABC”、“SDF”和“字符串123”等都是存储在常量池中。所以对String进行任何更改操作都会产生新的String对象。而StringBuilder与StringBuffer 是可变类,它们的对象是一个变量,对StringBuilder和StringBuffer对象的操作不会生成新的对象,依然是原来的对象。可以理解为String类是不可变

2017-04-08 17:12:54 424

原创 Java基础(11):字符串—深入理解String对象和比较符==和equals的不同

String类是被final修饰的类,是不可变的,也不能被继承。而且String对象都是常量,例如"adsf" ,"ADcd"等字符串就是存储在常量池中。我们使用字符串时,会采用两种方式:String s = "字符串";String s = new String("字符串"); "字符串" 和 new String()的区别:贴上一段代码String s1 = "AB

2017-04-07 14:57:10 782

原创 Java基础(10):Java异常体系详解和异常处理机制

异常处理机制和体系结构        Java异常是指在程序运行过程中出现错误,从而影响程序流程的正常运行。而异常处理机制可以保证程序出现错误后,控制接下来的程序流程,是选择定位错误信息,还是抛出异常或捕获异常、还是避免程序非正常退出,都取决于我们。异常体系结构(附网图一张)                               通过上面的异常体系结构图可以清晰看

2017-04-06 00:10:18 1060 1

原创 Java基础(9):Java关键字—this与super的使用方式

先放上一张个人理解图。抽象类和接口的简单定义:从上面图中来看,越往上越抽象。个人理解抽象的本质是为了提取出通用的方法和状态。在通常对类的定义中,类是对象的抽象,是对象的模板,而抽象类也可以理解为对类的抽象,是类的模板。如果一个类中没有足够的信息来描绘一个具体对象,那这个类就可以定义为抽象类。接口类算是一个特殊的抽象类,它提供统一的协议,体现一种规范,只要实现了接口,就必须实现其

2017-04-05 22:18:41 472

原创 Java基础(8):面向对象—抽象类和接口的区别和各自特点

this和super的作用:this代表的是本类对象,一般用来调用方法外部的本类变量和方法。super代表的是当前类的父类引用。使用super,可以直接调用父类的方法和变量。给出一段使用this 和 super 的代码:public class Test { public static void main(String[] args) { //创建无参数的B对象 B b

2017-04-04 23:11:30 631

原创 Java基础(7):面向对象三大特性—封装、继承和多态的详解

一、封装(encapsulation)从表面意思来看就是封闭的包装。而Java中,一个类有属性和方法,但是不可能想修改就修改,毫无安全性可言,而且有的类只适用于某一场景,其内部的方法和属性不对外开放。这就是封装的作用,用来设置访问权限。下图为Java的访问权限符和其作用域访问范围从大到小:public --> proetected --> default --> private

2017-04-04 17:12:21 686

原创 Java基础(6):类和对象概念的理解、Java方法(函数)的使用方式

类的概念在Java中,类是最基础的组织单位,在Java中认为万物都是对象,对象是实际存在的事物。而类则是对对象的抽象化,类本身并不存在,是一种组织概念,用来组织同一类事物的,相当于是对象的模板。类里面定义了对象的通用行为和通用状态,但具体情况,是根据每个对象来决定的。例子解析:1. 公司中存在许多部门,部门有工作职能这个行为和人员这个属性。有管理部门、技术部门和财政部门等。但是每个

2017-04-03 15:23:25 778

原创 Java基础(5):位运算的使用方式、运算符优先级的图示

在Java中,位运算常用的就是移位运算了。所以会按照个人的理解去回顾这个知识点,不会太深入。如果对位运算感兴趣的可以去其他博客搜搜,讲解非常详细。 移位运算所进行的操作是在二进制的基础之上对数字进行平移,有左移运算和右移运算。给一个代码例子://测试右移位运算 //结果是1 和 0System.out.println(6>>2); //6右移2位System.out.printl

2017-04-03 00:25:23 639

原创 数组定义和使用,理解多维数组和Array类

数组的作用在执行程序的过程中,通常会需要存储大量数据。如果只有少量数据,那么通过声明变量,存储到变量中即可。但当我们的数据是20个、40个甚至是100以上时,就意味着需要声明很多变量,这是不现实的,不仅影响程序阅读,而且效率低下,不符合程序优化。这时就需要采用一个有条理并且高效的方法来存储大量数据。数组是一种数据结构,可以用它来存储元素数量固定且元素类型相同的有序集。 如果要存储100个int型的...

2017-04-02 20:24:47 1515

原创 Java常用修饰符总结

修饰符的作用      修饰符是用于限定类型以及类型成员申明的一种符号,分为访问修饰符和非访问修饰符两种。修饰符可用于修饰类、变量和方法。访问修饰符控制访问权限,不同的访问修饰符有不同的权限范围,而非访问修饰符则是具有一些特定功能。  访问权限修饰符    访问修饰符有四个,权限从大到小:public、protected、default、private ,访问权限如下:           pub...

2017-04-02 18:02:59 1740

原创 实例/静态变量、局部变量和常量的定义及其作用域

实例变量属于类的某个特定实例,静态变量属于类,因为它们的作用域在整个类中都是可用的,所以也被称为全局变量。在类中定义实例变量或静态变量时,可以放在任何位置。但为了美观规范,设计类时最好统一放在类中的最前面。public class Testvariable { int a; //实例变量 static int b; //静态变量 //不能声明后,单独赋值 a = 5; //error ...

2017-04-02 16:33:04 904

原创 搭建Java的运行和开发环境

Java最大的优势就是跨平台,即编译一次,就能在linux、windows和mac等平台运行,无需再次编译。而典型的C和C++ 则是源代码跨平台,需要根据不同平台的编译规范来进行编译。Java如何跨平台?这就要提到虚拟机(JVM)了,当启动一个java程序时,相关的Java字节码文件会被虚拟机加载进内存,由虚拟机来负责Java程序运行。所以只要操作系统上装有虚拟机,就能运行Java程...

2017-04-02 16:12:14 355

c3p0-dbcp-配置文件-mysql驱动包

c3p0 和DBCP数据源的jar包,以及配置文件,加上mysql的驱动包

2017-08-11

空空如也

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

TA关注的人

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