
JavaSe
文章平均质量分 54
dragon901
这个作者很懒,什么都没留下…
展开
-
对象字节流以及文件字符流、缓冲流、字符 输入输出流
1.对象字节流(ObjectInputStream\ObjectOutputStream)在学习对象字节流之前,先来了解一个接口java.io.SerializableJAVA允许我们在内存中创建可重复使用的对象,但是,他们的生命仅仅只和虚拟机运行时间一样长。一旦JVM停止运行,对象随之被清除,如何才能我们的对象永久保存?java.io.Serializable接口可以使我们的对象永久的持久化ja...原创 2018-03-22 21:52:57 · 2619 阅读 · 0 评论 -
关于 InputStream in = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties")简单介绍
上述代码 pro创建一个静态的Properties对象JDBCUtil.class是创建一个JDBCUtil的Class对象可能有很多人不知道Class对象是什么这里简单介绍一下Class类:Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是C...原创 2018-04-03 21:09:11 · 8439 阅读 · 3 评论 -
JAVA中的两种单例模式
一个类中我们可以通过new()创建很多的对象,但是有的类只允许有一个对象来进行操作,这就是所谓的单例模式。我们都知道单例模式有两种,一种是饿汉模式,一种是懒汉模式。顾名思义,懒汉模式就是在需要时候才创建单例对象,而饿汉模式我们可以理解它很饿所以急切提前把单例对象创建好,不管需不需要。关于单例对象,我们需要注意的是,单例对象都是静态的,而且构造方法是私有的,这个是很好理解的,既然是单例对象,自然不允...原创 2018-04-03 22:02:19 · 362 阅读 · 0 评论 -
JAVA中的网络编程
1. TCP/IP协议(TCP和UDP):四层机构:物理层、网络层、传输层、应用层 协议:IP、TCP、UDP、HTTP、FTP、SMTP等TCP:面向连接的服务。可靠,传输大小无限制,但是需要连接建立时间,差错控制开销大。 比如打电话UDP,无连接的服务。不可靠,差错控制开销较小,传输大小限制在64K以下,不需要建立连接。 比如写信Socket(套接字)Socket ...原创 2018-03-28 21:47:56 · 216 阅读 · 0 评论 -
悲观锁( Pessimistic Locking )乐观锁( Optimistic Locking )
业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “ 锁 ” ,即给我们选定的目标数据上锁,使其无法被其他程序修改。Hibern...原创 2018-04-11 18:02:51 · 638 阅读 · 0 评论 -
数据库连接池原理
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。 连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存...原创 2018-04-11 19:24:46 · 273 阅读 · 0 评论 -
数据源(DataSource)
数据源(DataSource)制SUN制定的用于获取数据库连接的规范接口。它存在于 javax.sql包中,用来代替 DriverManager 的方式来获取连接。DataSource 与 DriverManager 获取连接的不同:a).DriverManager是由SUN实现的,它只供了最基本的获取 连接的方式。 而DataSource是一个接口,不光SUN可以实现,很多第三方 的...原创 2018-04-11 19:29:11 · 31871 阅读 · 0 评论 -
wait()方法和sleep()方法的区别
wait()方法是Object类中的方法sleep()方法是Thread类中的方法因为sleep()方法是Thread类中的方法,所以不能改变对象的机锁,虽然调用sleep()方法使线程休眠了,但是对象的机锁并没有被释放,其他线程依然不能访问这个对象。wait()方法使线程休眠的同时也释放了机锁,其他线程可以访问这个对象,可以通过Object类中的notify() 、notifyAll()唤醒等待...原创 2018-04-11 20:53:39 · 328 阅读 · 0 评论 -
ThreadLocal的作用
ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程的上下文ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递...原创 2018-04-11 21:05:35 · 583 阅读 · 0 评论 -
类的加载
什么是类的加载?类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口类加载的三种方式:命令行启动应用时候由JVM初始化加载通...原创 2018-04-11 21:24:30 · 130 阅读 · 0 评论 -
为什么静态成员、静态方法中不能用this和super关键字
为什么静态成员、静态方法中不能用this和super关键字1. 在静态方法中是不能使用this预定义对象引用的,即使其后边所操作的也是静态成员也不行.因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在 2. 在问题之前先讲super的用法:1.super的用法跟this类似,this代表对本类对象的引用,指向本类已经...转载 2018-04-12 20:27:22 · 224 阅读 · 0 评论 -
为什么集合中没有实现Cloneable和Serializable接口
集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它 自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。 克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的。因此,应该由 集合类的具体实现来决定如何被克隆或者是序列化。 ...原创 2018-04-12 20:51:55 · 3472 阅读 · 0 评论 -
TCP协议和UDP协议的区别
链接:https://blog.youkuaiyun.com/xiaobangkuaipao/article/details/767937021、TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校...转载 2018-05-02 22:31:32 · 181 阅读 · 0 评论 -
java String常量池
首先看下面一个代码然后运行结果:那通过结果我们可以看到 只创建了一个String 对象 为什么会这样呢这就是java中的常量池 当创建一个常量对象时 先判断 常量池是否存在 相同内容的常量 如果存在就不再继续创建 而是将找到常量的引用 给 要创建的字符串常量 他们其实是一个对象而下面这个代码:运行结果为: 从运行结果我们可以看到这是两个不同的字符创对象 那是因为 常量池中...原创 2018-05-21 08:08:56 · 2266 阅读 · 0 评论 -
关于InputStream in = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties")的介绍
上述代码 pro创建一个静态的Properties对象JDBCUtil.class是创建一个JDBCUtil的Class对象可能有很多人不知道Class对象是什么这里简单介绍一下Class类:Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是C...原创 2018-04-03 21:04:02 · 12284 阅读 · 2 评论 -
线程
1.线程的创建和启动Java支持内置的多线程机制。Java语言包中的Runnable接口约定线程的执行方法Thread类提供创建、管理和控制线程对象的方法线程的创建通过两种方式:1.继承Thread类2.实现Runnable接口Runnable接口:该接口中只包含了一个run()方法实现多线程,定义一个类A实现Runnable接口;然后,通过new Thread(new A())等方式新建线程Th...原创 2018-03-27 21:41:01 · 149 阅读 · 0 评论 -
是否可以在static环境中访问非static变量
答案当然是不行的。我们都知道被static修饰的变量是属于这个类的,它不依赖于它所属于的类的具体实例,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入 的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量, 编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上 ...原创 2018-04-09 16:21:52 · 548 阅读 · 0 评论 -
JAVA写一个小型水果超市
初学java,还不太熟悉,技术有限,多多包涵,哈哈。水果超市 包括以下功能:1.添加水果2.显示水果3.根据编号查询水果4.删除水果5.添加购物车6.查看购物车7.根据编号修改水果0.退出下面是我的包及类的构造:代码展示:package com.gem.fruit.entity;public class Fruit { private int fruitID; private Stri...原创 2018-03-23 21:37:03 · 14625 阅读 · 10 评论 -
关于子类调用父类构造方法的问题
昨天班级有一个小测验,结果自己觉得还不错的错了好几道题,自己总结了一下,主要是子类继承父类时候构造方法的问题不太清楚,今天就总结一下。1.子类会默认调用父类的无参构造方法举例来看:public class Derived extends Base { public Derived (String s) { System.out.println("这是子类的...原创 2018-03-29 22:01:04 · 25078 阅读 · 7 评论 -
集合
1.今天决定写博客,本人计算机菜鸟一枚,也算是对自己的一个交代吧。来高博第三个星期了,纠结了好久,终于决定写博客了,由于本人关系,就不让各位看到了。现在是大三,未来该何去何从,来到高博实训是学校的安排,对自己专业能力的一个加强吧。自己也没有很排斥吧,既然来到这就好好学习,就好好学,尽自己的最大努力。现在已经快十一点了,苦逼的我刚回到宿舍开始写博客,都说坚持一件事很难,我相信我能坚持住,既然开始了就...原创 2018-03-20 21:20:07 · 167 阅读 · 0 评论 -
Java程序模仿随机发红包
模仿随机发红包输入金额:xxx 输入发几个包:xx 第一个人xxx元 第二个人xxx元 。。。。。。import java.math.BigDecimal;import java.util.Random;import java.util.Scanner;public class RedPackage { public stati...原创 2018-03-20 21:35:03 · 3977 阅读 · 0 评论 -
HashMap 、 Hashtable 、 treeMap的用处以及他们之间的区别
1.HashMap的用法HashMap实现了Map接口,继承AbstractMap,它是基于哈希表的 Map 接口的实现(保证键的唯一性),以key-value的形式存在HashMap是引用数据类型通过 new 关键字在 Heap 堆中申请空间保存其中元素的空间,按照hash码,预设好一个个的空间这个空间就是 Hash Bucket(哈希桶)每个桶有自己的Hash编号 一开始有少量的 Hash B...原创 2018-03-20 23:23:24 · 12018 阅读 · 1 评论 -
String StringBuffer Stringbuilder的用法以及区别
String是字符串常量StringBuffer是字符串变量(线程安全)StringBuilder是字符串变量(线程不安全)StringBuffer,StringBuilder与String最大的区别是String是不可变得常量,因此每次对String对象进行操作时候都会产生一个新的String对象,然后将指针指向新的String对象,所以需要经常改变内容的字符串最好不要用String,因为每次生...原创 2018-04-08 08:31:37 · 125 阅读 · 0 评论 -
Statement与PreparedStatement的用法及区别
Statement 与 PreparedStatement 的区别Statement 是在执行时才传递SQL命令,这样的好处是一个Statement对象可以执行不同的SQL命令。缺点是 不能动态绑定参数。PreparedStatement 是“预编译”的Statement,是Statement的扩展,它是在创建时就指定好SQL命令,这样的好处是 一开始就可以把SQL命令送到数据库端做预编译,并且可...原创 2018-04-08 10:36:33 · 269 阅读 · 0 评论 -
JAVA异常
1.异常: 异常是程序运行过程中出现的错误 目前的主流编程语言如C++、C#、Ruby、Python等,大都提供了异常处理机制。增加了异常处理机制后的程序有更好的容错性,更加健壮 Java语言语法体系是严密的,语法检查是严格的 Java不仅在编译时能检查所有的语法错误 而且在运行时能后捕获到所有的运行时错误 Java把异常当作对象来处理,并定义一个基类java.lan...原创 2018-03-31 16:02:50 · 190 阅读 · 0 评论 -
java 中的抽象类、接口
抽象类(abstract): 在面向对象设计中,越处于继承结构顶层的类,就越概括,越抽象。 修饰的方法: 这种方法会成为一种抽象方法. 抽象方法一定要让子类覆盖并且给予实现的. 抽象类不一定包含抽象方法,但有抽象方法的类一定是抽象类.abstract 一定不能和 private, static, final 同时使用.修饰类: 这个类成为一个抽象类. 抽象类不能创建对象 (构造函数可以被子类...原创 2018-03-31 16:20:19 · 233 阅读 · 0 评论 -
java的封装继承和多态
this在每个类的内部,都有一个隐含的成员变量,该类的类型就是该类的类型,该成员变量的名称是this,this是一个引用,指向自身的对象。this的用法: 1、this调用本类中的属性,也就是类中的成员变量 2、this调用本类中的其他方法 3、this调用本类中的其他构造方法,调用时要放在构造方法的首行面向对象特征之封装(Encapsulation...原创 2018-03-31 16:42:22 · 16747 阅读 · 1 评论 -
模仿发牌洗牌
分为以下几个步骤:1).写一个卡片类Card类, 含两个属性: 一个花色(Suit),一个是点数(Rank).2).写个扑克牌Poker类,含52张 Card,2张副牌(大王和小王)不计算3).写一个发牌者 Dealer 类,有属性 扑克牌Poker类,并提供方法: 发牌 deal() , 洗牌 shuffle()4).写一个 玩家 Player 类 5).在单元测试中,可以初始化3个玩家,并...原创 2018-03-21 21:36:00 · 281 阅读 · 0 评论 -
浅克隆与深克隆
clone()方法是Object中的一个方法浅克隆(shallow copy) Employee cindy=tobby.clone()深克隆(deep copy) 必须实现Cloneable接口 class Employee implements Cloneable { public Object clone() throws CloneNotSupp...原创 2018-03-26 21:57:02 · 172 阅读 · 0 评论