JavaSE
孙靖俊
这个作者很懒,什么都没留下…
展开
-
PriorityQueue讲解及源码解析
优先级队列是常用的数据结构之一,今天就来解析一下底层源码是如何实现的知识准备 在谈优先级队列之前,先来大概陈述一下,队列大家都知道,先入先出,每一个元素在队列中排好队,然后按照顺序进行出队,那么优先级队列是怎么回事呢?优先级故名思意,就是给每个元素加上了优先级,元素在进入队列后,并不是先入先出了,而是需要给根据元素的优先级,每次出队都是优先级大的元素出队。 在jdk的源码中,优先级队列是...原创 2019-11-10 10:58:04 · 205 阅读 · 0 评论 -
自己实现栈Stack
栈是我们常用的数据结构,java中有为我们实现,即Stack为了更加理解这个数据结构,我们自己来实现一个栈需要说明的是jdk为我们实现的Stack,有一些不好的地方,我们都知道栈只能push和pop,但是jdk中的Stack是继承Vector,所以Stack有Vector的所有方法,Vector的底层是用数组实现的,因为Vector可以在任意位置加入元素,所以Stack也可以这是一个很大的...原创 2019-03-11 18:20:31 · 420 阅读 · 0 评论 -
多线程安全-线程同步
在多线程情况下,资源被多个线程访问,就会出现一些问题下面看一个例子,写一个模拟银行操作,就只完成取钱操作,先看代码。class Account { private String name; private int balance; public Account(String name, int balance) { this.name = name;...原创 2019-03-31 20:13:22 · 422 阅读 · 0 评论 -
jdk1.8新特性:Lambda表达式
要了解Lambda表达式,我们先来说说函数式接口函数式接口:接口中只有一个抽象方法(有默认方法和静态方法不影响)Lambda表达式就是为了解决函数式接口而诞生的,可以先看一个例子来了解现在我们要实现下面接口的drive功能,我们能怎么做呢?interface Drive { void drive();}1.通过一般类实现接口来重写该方法class TestDrive im...原创 2019-04-01 18:16:55 · 338 阅读 · 0 评论 -
死锁
在线程同步的过程中难免会出现死锁,死锁就是两个线程相互等待对方释放同步监视器就会发生,这种情况没有办法检测出来,不会出现任何异常,但是线程一直处于阻塞状态,无法进行。看个例子public class DeadLock { public static void main(String[] args) { A a = new A(); B b = new B...原创 2019-04-08 20:39:16 · 163 阅读 · 0 评论 -
面试题1:Java中通过函数交换引用变量的值
先给出一道面试题:在main中定义两个Integer变量,通过swap方法交换值碰到这道题,大家的第一反应就是这样写 public static void swap(Integer a1, Integer b1) { int temp = a1; a1 = b1; b1 = temp; }这样写肯定是错误的。为什么呢,Inte...原创 2019-04-14 12:08:07 · 1922 阅读 · 1 评论 -
Java中swing修改左上角的图标
要想改变图标,就要先找到下载图标的网站,小编在这里和大家分享几个以前用过的网站1、easyicon2、阿里巴巴矢量图标3、Free Icons & Vector Files4、Find Icons and DownLoad下载图标时候,下载png格式的,因为jpg有背景,如,会出现这样的情况,格式是png,如果不能下载png,也可以转换格式到png,然后在代码...原创 2018-06-28 11:38:08 · 6428 阅读 · 1 评论 -
Properties配置文件工具类的使用
在后面学习框架以及JDBC的过程中,经常会接触到properties配置文件,所以在这里专门用一篇博客来总结配置文件的用法。 properties主要用于读取Java配置文件,各种语言都有自己支持的配置文件,配置文件其实就是为了让用户能够脱离代码本身去修改一些变量的值,具有更大的...原创 2019-07-31 09:43:47 · 447 阅读 · 0 评论 -
谈谈Java访问MySQL:JDBC的用法
文章目录基本介绍导入jar包简要介绍连接流程和配置代码演示JDBC核心组件加载数据库驱动获得连接获得Statemnet对象执行SQL语句处理结果集基本介绍要想用Java用操作MySQL数据库,就需要JDBC,JDBC是官方的一个jar包,提供了一系列操作数据库的接口,所以连接MySQL的第一步就是导入这个jar包。导入jar包这里jar包已经上传至百度云盘:链接:https://pan....原创 2019-08-01 15:16:43 · 2555 阅读 · 8 评论 -
自己实现ArrayList
在学习了集合框架后,为了更透彻的理解集合的底层源码,有必要自己实现一个ArrayList一下是我的源码:class MyArrayList<T> implements Iterable<T>{ private T[] elemdata; private static final int DEFAULT_CAPACITY = 10; private...原创 2019-03-11 18:00:49 · 214 阅读 · 0 评论 -
java包装类
java为什么要有包装类?我们都知道java是面向对象的,这就意味着java中的大多数东西都是对象,我们知道java的基本类型变量不是面向对象的,那么java是如何解决的呢?就是通过包装类。 java的包装类有哪些呢?我们先来看看基本类型包装类型intIntegerchar...原创 2019-01-22 23:30:41 · 161 阅读 · 0 评论 -
java包装类Integer缓存认识
    在我前面的博客中,已经写到一篇关于Integer的认识,后来在看的时候发现这篇博客写的有点问题,改起来思路完全不一样了,所以再写一篇来讲解。    在这里先给一个程序public class TestInteger { public static void main(Strin原创 2019-01-21 00:09:43 · 289 阅读 · 0 评论 -
java连接sql server 2012(免费的jar包下载及导入教程)
连接sql server数据库分为四个步骤: 1.加载驱动 2.连接数据库 3.发送sql语句 ...原创 2018-09-16 22:06:20 · 34899 阅读 · 15 评论 -
java数据类型
java是一种强类型语言,必须为变量声明一种类型,就叫做数据类型。数据类型定义是一个值的集合和定义在这个集合上边的一组操作。可以理解为数据类型就是变量的取值范围,对于在这个范围内的值有一些操作。 下来说一说java中的数据类型。java的数据类型分为基本数据类型和引用数据类型,基本数据类型包括数值、布尔和字符,数值又分为浮点和整型;引用数据类型可以分为java中的类,数组,接口,Stri...原创 2018-10-11 22:53:56 · 167 阅读 · 0 评论 -
关于Integer缓存
先上代码public class TestInteger { public static void main(String[] args) { Integer a =100; Integer b =100; System.out.println(a==b); Integer a1 = 200; Inte...原创 2018-11-03 12:02:36 · 191 阅读 · 0 评论 -
java流程控制
文章目录选择结构if语句ifif elseif else ifswitch语句循环结构whiledo whileforforeachjava中程序运行的基本结构有三种:1,顺序 2,选择 3,循环顺序结构就是在程序没有其他结构,就自上而下的执行程序。我们主要讨论选择和循环结构选择结构if语句if基本语法:if(条件) &amp原创 2018-11-09 13:46:32 · 153 阅读 · 0 评论 -
java运算符
优先级表 优先级运算符类别 1 () 括号运算符 1 [] 方括号运算符 2 !、+(正号)、-(负号) 一元运算符 2 ~ 位运算符 2 ++、— — 自...原创 2018-11-04 18:30:28 · 601 阅读 · 0 评论 -
java数组的四种拷贝方式
数组的拷贝方式有四种,分别是:for循环    clone()   System.arraycopy()   原创 2018-11-18 18:28:44 · 39846 阅读 · 4 评论 -
java数组常用方法解析
binarySearch public static int binarySearch(int[] a, int key) { return binarySearch0(a, 0, a.length, key); } public static int binarySearch(int[] a, int fromIndex, int toIndex, ...原创 2018-11-22 17:50:16 · 372 阅读 · 0 评论 -
封装的理解
《核心技术卷1》中提到:从形式上看,封装不过是将数据和行为组合在一个包内,并对对象的使用者隐藏了数据的实现形式。 关键在于绝对不能让类中的方法直接地方位其他类的实例域,实例域及对象中的数据,上面的话说的很清楚,关键是不能在外部直接访问实例域,即private,这就是关键。使用者不必关心数据是算法如何实现的,只需要调用数据的方法...原创 2018-12-02 18:34:40 · 1788 阅读 · 0 评论 -
java精确到小数点后两位
//DecimalFormat -> Stringjava.text.DecimalFormat df = new java.text.DecimalFormat("#.##"); double d = 3.14159; System.out.println(df.format(d)); //java.math.BigDecimalBigDecimal bd =...转载 2018-07-28 17:37:46 · 1191 阅读 · 0 评论