
javaSE
什么时候能有钱
奇思妙想...
展开
-
模板方法模式-抽象定时任务器模板
模板方法原创 2022-06-06 16:40:13 · 276 阅读 · 1 评论 -
JDBC——利用反射动态获取结果集
// 查询 public static <T> ArrayList<T> query(Class<T> clazz, String sql, Object... args) { PreparedStatement ps = null; Connection conn = null; ResultSet resultSet = null; t...原创 2020-04-21 16:41:49 · 437 阅读 · 0 评论 -
java泛型方法的结构及使用
转载 2020-04-17 15:53:34 · 421 阅读 · 1 评论 -
JDBC获取数据库的五种连接方式(循循渐进)
获取数据库的连接方式(循循渐进)方式一: @Test public void testConnection1() throws SQLException { // 实例化mysql的驱动 Driver driver = new Driver(); // 提供连接信息,包括url,user,password String url = "jdbc:mysql://localho...原创 2020-04-16 21:48:15 · 368 阅读 · 1 评论 -
InetAddress类的创建及使用 ,Socket概述,网络编程(TCP、UDP、URL)
TCP编程//客户端 @Test public void client() { Socket s = null; OutputStream os = null; InputStream is = null; try { //1.创建一 个Socket的对象,通过构造器指明服务端的IP地址,以及其接收程序的端口号 s = new Socket(InetAddress...原创 2020-04-16 12:00:36 · 535 阅读 · 0 评论 -
java反射
获取Class类的实例的4种方式//1.调用运行时类本身的class属性Class clazz1 = Person.class;System.out.println(clazz1.getName());Class clazz2 = String.class;System.out.println(clazz2.getName());//2.通过运行时类的对象获取Person p = n...原创 2020-04-16 11:40:53 · 105 阅读 · 0 评论 -
java的时间、日期类,日历类
System类:currentTimeMilliso :返回当前时间的long型值。此long值是从1970年1月1日0点0分00秒开始到当前的毫秒数。此方法常用来计算时间差。Date类: java.util.Date1. Date d = new Date();//返回当前时间的Date : Mon May 12 15:17:01 CST 2014Date d1 = new Date(1...原创 2020-04-13 13:27:35 · 272 阅读 · 0 评论 -
【精】(String)字符串拼接内存解析
String str1 = “Hello”;字符串常量池中没有"Hello",则创建一个字符串并把地址值返回给str1String str2 = “Hello”;字符串常量池中存在"Hello",则创将该字符串的地址值返回给str2String str3 = new string( “Hello”);str3指向对象的地址,对象中的值指向字符串常量池中已有的字符串String str......原创 2020-04-13 13:05:27 · 2048 阅读 · 4 评论 -
线程之生产者消费者问题
/**生产者消费者问题*生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品,*店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一 下,*如果店中有空位放产品了再通知生产者继续生产;如果店中没有产品了,店员会告诉消费者等一 下,*本如果店中有产品了再通知消费者来取走产品。*///店员cl...原创 2020-04-12 16:01:48 · 150 阅读 · 0 评论 -
线程是什么?多线程的实现,生命周期,安全问题及线程的通信
多线程的实现一、通过继承Thread实现线程(一)线程的调度线程调度的策略Java的调度方法线程的优先级控制(二)Thread类的常用方法(三 )通过继承Thread实现线程的例子一、通过继承Thread实现线程(一)线程的调度线程调度的策略时间片抢占式:高优先级的线程抢占CPUJava的调度方法同优先级线程组成先进先出队列(先到先服务),使用时间片策略对高优先级,使用优先...原创 2020-04-12 15:35:33 · 171 阅读 · 0 评论 -
程序、进程、线程之间的关系
程序(program)为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process)是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的线程(thread)进程可进一 步细化为线程,是一个程序内部的一条执行路径。若一个程序可同一时间执...原创 2020-04-09 10:30:55 · 693 阅读 · 0 评论 -
IO流的使用
一、java.io.File类凡是与输入、输出相关的类、接口等都定义在java. io包下File是一 个类,可以有构造器创建其对象。此对象对应着一 个文件(.txt .avi doc .ppt .mp3 .jpg)或文件目录File类对象是与平台无关的。File中的方法,仅涉及到如何创建、删除、重命名等等。只要涉及文件内容的,File是无能为力的,必须由io流来File类的对象常作为...原创 2020-04-08 17:19:21 · 329 阅读 · 0 评论 -
【面试题】什么是对象的序列化?
对象序列化机制:允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其它程序获取了这种二进制流,就可以恢复成原来的Java对象序列化的好处:可将任何实现了Serializable接口的对象转化为字节数据,使其在保存和传输时可被还原序列化是RMI ( Remote Method Invoke -远程方法调...原创 2020-04-08 16:48:35 · 295 阅读 · 0 评论 -
java基础——注解Annotation(基本注解类型、自定义注解类型、对注解进行注解)
一、注解(Annotation)概述从JDK 5.0开始, Java增加了对元数据(MetaData)的支持,也就是Annotation(注解)Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理.通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息.Annotation可以像修饰符一样被使用,可用...原创 2020-04-06 17:24:30 · 1304 阅读 · 0 评论 -
为什么要用枚举实现单例模式(避免反射、序列化问题)
为什么要用枚举实现单例模式(避免反射、序列化问题)原创 2020-04-06 16:26:00 · 222 阅读 · 0 评论 -
【面试】单例模式的五种实现方法
一、饿汉式实现/** * 饿汉式单例模式,可以保证多个线程下的唯一实例,getInstance方法性能较高,但是无法进行懒加载 * 缺点:类加载的时候单例对象就产生了,如果类成员占有的资源比较多,这种方法较为不妥。 *///final 不允许被继承public final class HungerSingleton { private static HungerSingleto...转载 2020-04-11 15:15:30 · 177 阅读 · 0 评论 -
Enum枚举类的使用
重新认识java(十) ---- Enum(枚举类)转载 2020-04-06 15:33:59 · 174 阅读 · 0 评论 -
【面试题】Collection和Collections区别
一、Collection是一个接口跟存储数据相关,其下有List、Set等子接口二、CollectionsCollections是一个操作Set、List 和Map等集合的工具类Collections中提供了一系列静态的方法,其中包含对集合进行排序和二分查找等方法...原创 2020-04-05 18:10:54 · 379 阅读 · 1 评论 -
HashSet与HashMap的关系
HashSet作为一种最简单的java集合类,真的可以用三句话来概括一下:第一句:存放不重复的数据。第二句:底层基于hash表实现。第三句:内部基于HashMap。这也就是说,你想要完完全全彻彻底底地把HashSet吃透,就一定要先吃透HashMap。这篇文章将带着你从特点到存储,再到最后的实现,从源码角度来分析一下。一、认识HashSet其实就是一个没有重复数据的集合,基本用法很简单,我...转载 2020-04-05 17:23:09 · 1179 阅读 · 0 评论 -
关于迭代器Iterator 的使用及理解
关于迭代器Iterator 的使用及理解一.迭代器的使用IteratorListIterator(子接口)二.迭代器的理解三.举例说明一.迭代器的使用IteratorListIterator(子接口)二.迭代器的理解ListIterator的hasNext()不应该是指向 集合的对象 而是类似电脑记事本的光标,处于每个对象之间,开始时就是光标为0的位置,若是光标下一个元素有值则has...原创 2020-04-04 18:50:20 · 467 阅读 · 0 评论 -
接口的使用
接口(interface)是与类并行的一 个概念1.接口可以看做是一个特殊的抽象类。是常量与抽象方法的一个集合,不能包含变量、一般的方法。2.接口是没有构造器的。3.接口定义的就是一种功能。此功能可以被类所实现(implements)。比如: class CC extends DD implements AA4.实现接口的类,必须要重写其中的所有的抽象方法,方可实例化。若没有重写所有的抽...原创 2020-04-01 18:19:55 · 161 阅读 · 0 评论 -
抽象类与抽象方法的使用
abstract只能修饰类和方法,不能修饰属性一.abstract修饰类:抽象类1)不可被实例化2)抽象类有构造器(凡是类都有构造器,接口没有构造器)3)抽象方法所在的类,一定是抽象类。4 )抽象类中可以没有抽象方法,可以有普通方法。二. abstract修饰方法:抽象方法1)格式:没有方法体,包括{}.如: public abstract void eat( );2 )抽象方法只...原创 2020-04-01 17:41:08 · 148 阅读 · 0 评论 -
final的使用
final:最终的,可以用来修饰类属性、方法final修饰类:这个类就不能被继承。如: String类、 StringBuffer类、System类final修饰方法:不能被重写。如: object类的getClass()final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值。习惯上,常量用大写字符表示。此常量在哪里赋值:①此常量不能使用默认初始化②可以显式的赋值、代码块、构...原创 2020-04-01 17:17:18 · 140 阅读 · 0 评论 -
代码块的使用
一.代码块如果有修饰的话,那么只能使用static.二.分类:静态代码块:1.里面可以有输出语句2.随着类的加载而加载,而且只被加载一次3.多个静态代码块之间按照顺序结构执行4.静态代码块的执行要早于非静态代码块的执行。5.静态的代码块中只能执行静态的结构(类属性,类方法)非静态代码块:1.可以对类的属性(静态的&非静态的)进行初始化操作,同时也可以调用本类声明的方法(...原创 2020-04-01 16:53:13 · 228 阅读 · 0 评论 -
基本数据类型、包装类、String类的互相转换
基本数据类型、包装类— >String类:调用String类的重载的valueOf(Xxx x)方法//基本数据类型、包装类--- >String类:调用String类的重载的valueOf(Xxx x)方法int i1 = 10;String str1= i1 +"";//"10"Integer i2 = i1;String str2 = string .value0f(i...原创 2020-04-01 11:59:19 · 95 阅读 · 0 评论 -
toString()的使用
java. lang . Object类的toString( )方法的定义如下:public String toString() { return getClass().getName() + "@" + Integer . toHexString(hashCode());}1.当我们打印一个对象的引用时,实际上默认调用的就是这个对象的toString( )方法2.当我们打印的对象所在...原创 2020-04-01 11:26:59 · 1755 阅读 · 0 评论 -
关于equals()和==的区别,快速重写equals方法
“==”比较基本数据类型时是比较大小是否相等比较引用时是比较地址是否相等equals()equals只能处理引用类型变量在java.lang.Object 类,equals( )比较的是两个引用变量的地址值是否相等在java.lang.String类,包装类,File类,Date类等,重写了equals( ),比较的是两个对象的实体内容是否相等当我们以后要对比对象是否相同...原创 2020-03-31 18:14:01 · 389 阅读 · 0 评论 -
数组之常用排序算法,冒泡排序,直接选择排序
冒泡排序for(inti=0;i<arr.length-1;i++){ for(intj=0;j<arr.length-1-i;j++){ if (arr[j] > arr[j + 1]) { int temp = arr[j] ; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }}直接选择排序for(...原创 2019-10-31 21:44:14 · 173 阅读 · 0 评论 -
java基础——关键字、标识符的使用,java命名规范
一、关键字的定义和特点定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写二、标识符三、java命名规范...原创 2019-10-31 16:35:44 · 141 阅读 · 0 评论 -
java 数据类型
一、数据类型的分类基本数据类型长度一个字节=8位(bit)boolean:一位(1/8字节) 表示true、false。byte:1个字节 (0-255)(-128~127)short: 2个字节 16位(16个开关)int: 4个字节long: 8个字节float:4个字节double:8个字节char字符型:2个字节,采用的是Unicode编码。数据类型的转换:1、从...原创 2019-10-31 16:58:45 · 109 阅读 · 0 评论