自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java获取系统时间的四种方法

//1、通过Date类来获取当前时间 Date date =new Date(); SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(dateFormat.format(date)); //2、通过System类中的currentTimeMillis方法来获取当前时间 Simple...

2021-02-25 22:26:13 576

原创 volatile和synchronized的区别

一、Volatile关键字在内存模型上,堆内存用来存储对象和基本数据类型的备份,称之为主内存,将栈内存中存储的变量的部分内存,称之为本地内存(工作内存),这个就是 JMM模型的内容。1、Java线程对于所有的变量操作(读取,赋值)都是在自己的工作内存中进行的,线程是不直接读取主内存中的变量。2、不同线程无法直接访问对方的工作内存中的变量。3、线程间变量的传递主要是通过主内存来完成。主内存和工作内存具体的交互协议,即一个变量从主内存拷贝到工作内存,如果从工作内存同步到主内存的是有具体的交互操作:

2021-02-21 22:36:12 747 2

原创 String、StringBulider和StringBuffer区别

java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,以下总结出他们三个的不同之处。一、可变与不可变 /** The value is used for character storage. */ private final char value[];由String类的源码中可以看出String类使用char数组保存字符串,用final来进行修饰,由此可见是不可变的。 public final class StringBuffer

2021-02-20 22:11:29 198

原创 线程的创建方式

线程的创建创建线程有以下三种方式:1、实现Runable接口2、继承Thread类3、实现Callable接口一实现Runable接口方式Runable的接口定义如下:在JDK的java.lang包路径下存在Runable的接口,该接口中存在抽象的run方法,实现Runable接口是要实现run方法。public interface Runnable { public abstract void run();}自定义一个实现Runable接口的Class类/** * 线程的

2021-02-20 10:38:32 169 1

原创 Linux常用命令总结

终端的基本操作发出命令的载体windows 终端打开方式: windows win+RLinux 终端打开ctrl +alt+t、右键打开终端放大 :ctrl shift + 放小:ctrl -命令清屏 :clear ctrl + l命令手册如何查看命令使用man + 命令帮助手册,用来查看命令、系统调用,库函数等帮助信息开机与重启shutdown -h now 立刻关机halt 关机init 0 关机halt 需要切换位管理员模式,并且关闭之后

2021-02-18 22:10:47 1474 1

原创 Java 内存模型

Java内存模型Java的内存模型划分为5个部分:1.方法区:线程共享的2.堆区:线程共享,存放对象3.虚拟机栈:线程私有,存放的是线程运行时局部变量等4.本地方法栈:线程私有的,native方法5.程序计数器:线程私有的线程私有的内存区域:生命周期都是和线程同步程序计数器程序计数器是一块较小内存空间,用来记录当前程序所执行的字节码的行号。字节码解释器工作时通过改变这个计数器的值来选取下一条要执行的字节码指令,分支,循环,跳转,异常处理等都需要依赖这个程序寄之前来完成。线程切换后也需

2021-02-03 22:37:50 132

原创 Mysql中exists和in使用选择

今天在牛客网刷题时,碰见了一道题目,话不多说先上题目。使用含有关键字exists查找未分配具体部门的员工的所有信息。CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date N

2021-01-30 23:12:42 199 1

原创 一口井,井深21米,早上爬10米,晚上掉7米,几天能爬出来?

/***@Author:hhhzzz*@Description:一口井,井深21米,早上爬10米,晚上掉7米,几天能爬出来?*@Date:21:15 2021/1/28*/class Main{ static int result=1; static int sum=0; public static void main(String[] args) { int deep=21; int day=10; int night=7;

2021-01-28 21:29:39 269

原创 类加载器原理,双亲委派模型

一、JVM的工作过程在JVM的运行过程涉及到三个子系统:1)类装载子系统(Class Loader SubSystem)2)运行时数据区(Runtime Data Areas)3)执行引擎(Execution Engine)1.类加载子系统类加载子系统的作用是将字节码文件加载到JVM中,在类第一次被使用时,是需要初始化类文件。在类加载的过程中具有以下几个阶段:1)装载:功能就是来加载类,使用到了三个类加载器,分别是Bootstrap ClassLoader(启动类加载器)、Extensio

2021-01-28 20:58:51 110

原创 归并排序

简介归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序方法让左右两边的序列先有序,然后将两个有序两个序列合并为一个有序的序列。 当两边只有一个元素的时候,这时候左右两边的序列都是有序序列。时间复杂度 O(log2 N * N) ,空间复杂度 O(N)。是稳定的

2021-01-27 18:24:36 119

原创 快速排序的原理以及时间复杂度

快速排序资料 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序基本原理*** 选择两个引用,选择一个基准,比当前基准小的数据要往前走,比当前基准大的数据***快速排序循环代码实现快速排序采

2021-01-26 23:14:21 5995

原创 IDEA向数据库传入数据,中文数据出现??或乱码的解决方法

在用ssm整合做web项目时,发现传入数据库的数据中午会出现乱码情况。最后查阅资料发现解决方法:在数据源后面加上utf-8编码问题解决: <property name="url" value="jdbc:mysql://localhost:3306/myblog?characterEncoding=UTF-8"/>解决后数据库数据显示:...

2021-01-19 22:59:32 738

原创 MySQL总结

一、数据库概述1.1什么是数据库?简而言之,数据库(DataBase)是一个存储数据的仓库,将数据按特定的规律存储在磁盘上,通过数据库管理系统可以有效的管理和组织数据库中的数据。1.2 SQL语言SQL(Structured Query Language)即结构化查询语言。分为三个部分数据定义语言(Data Definnition Language,简称为DDL),数据操作语言(Data Manipulation Language,简称为DML)和数据控制语言(Date Control Langua

2020-12-27 23:28:48 713 2

原创 集合类Queue(ArrayDeque/PriortyQueue)总结

一、ArrayDeque

2020-10-08 00:44:30 215

原创 集合类List(ArrayList/LinkedList/Vector)总结

一、ArrayList总结简介:ArrayList是集合框架中比较常用的数据结构,继承自 AbstractList,实现了List 、RandomAccess、Cloneable、Serializable 接口,所以底层基于数组实现容量大小动态变化,是支持快速访问、复制、序列化的。成员变量:ArrayList 底层是基于数组来实现容量大小动态变化的。 private int size;//容器中实际元素个数 transient Object[] elementData;注意:上面的 size

2020-10-04 12:36:57 211

原创 Java多线程1

并行与并发串行执行 :代码按照顺序来执行单核、单CPU的电脑 。。。。一边听QQ音乐,一边使用idea编写代码并发:指多个线程操作同一个资源,不是同时执行,需要交替执行,单核CPU,因为CPU执行每一个时间片很短,速度太快,看起来是同时执行(张三、李四厨师,使用同一口锅炒菜,交替执行)并行:多核CPU,每个线程来使用一个单独的CPU的资源来运行(张三、李四厨师,一人一口锅,一起炒菜)并发编程:指允许多个任务在一个时间段内重复的执行的设计结构高并发:设计的程序,能够执行海量的任务同时执行QPS

2020-09-25 21:50:22 150

原创 迭代器

/** * 迭代器 * Iterator * Iterator()返回Iterator对象 * hasNext()判断当前集合是否含有下一个可迭代元素 * next()返回当前集合下一个可迭代元素 * 自定义迭代器的实现 * ArrayList种对迭代器的实现 * 1)modCount定义于abstraList,存储当前集合结构的修改次数 * 2)fast-fail机制 * ConcurrentModificationException() 使用迭代器遍历时如果调用集合的add/remo

2020-09-20 14:53:19 87

原创 Puzzle项目实现

import java.util.Arrays;import java.util.Stack;public class Puzzle {private PuzzleNode[]puzzleNodes;private static final int INITSIZE=10;private Stack<PuzzleNode>stack=new Stack<>(); public Puzzle() { this.puzzleNodes = new P

2020-06-02 20:50:54 247

原创 类的加载过程总结

类的加载过程类的加载时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中,验证,准备,解析三个部分统称为连接。四种情况必须立即对类进行初始化:1)new 静态属性 静态方法调用2)People.class 获取Class对象3)加载子类时需要提前加载父类4)启动JVM,main函数所在的类需要加载类的加载过程文件类型:后缀名+魔数魔数:识别文件类型.class字节码文件结构.class字节码

2020-05-24 22:03:52 278

原创 简单的五子棋小游戏

Chess类public class Chess { private String chessType = "+"; protected int xPos; protected int yPos; public Chess(String chessType,int xPos,int yPos) { this.chessType = chessType; this.xPos = xPos; this.yPos = yPos;

2020-05-23 22:28:42 338

原创 类和对象知识总结

类:类是现实世界在计算机中的反映,它将数据和对这些数据的操作封装在一起(并没有开空间)对象:类的实例(占有实际的空间)1)类相当于盖楼房的图纸一样,虽然定义了有哪些成员,但并没有实际的空间2)类可以实例化出多个对象,实例化出的对象占有实际空间(用来存储成员变量)类的三大特性:1.封装 2.继承 3.多态封装:函数的封装是一种形式,隐藏对象的属性和实现细节(函数内部),仅仅对外提高函数的接口和对象进行交互。继承:继承就是子类继承父类的特征和行为,使得子类对象(实例)具有...

2020-05-23 21:08:20 247

原创 简单ATM机项目(JAVA)

ATM:public class ATM { private Bank bank;//构造函数new Bank() private static Scanner scanner = new Scanner(System.in); public ATM() { bank=new Bank(); } private BankCard lo...

2020-04-19 19:15:01 529

原创 JAVA面向对象(二)

1、对象大小对象大小:对象头+实例变量+内存填充 (八的倍数)class对象:保存当前类的信息对象头占用空间:32位系统下,存放Class指针的空间大小是4个字节,对象头为8个字节。64位系统下,存放Class指针的空间大小是8个字节,对象头为16个字节。javac 编译器 字节码文件.classjava 解释器2、函数(方法)重载(this关键字使...

2020-04-11 13:31:19 96

原创 类和对象(一)

(一)以people为例子/** * new:1)在堆上开辟内存 * 2)调用构造函数:用来初始化成员变量 * 没有构造函数,JVM默认给无参构造函数,给默认值 * 类的构成: 1)成员变量(实例变量)(属性) * 2)构造方法(专门初始化成员变量) * 3)成员方法(实例方法)(行为) * 一个原文件只能对应一个publ...

2020-04-08 22:43:57 108

原创 一维数组练习(简单登录注册功能)

简单的登录注册功能public static boolean search(int[]arr,int id,int[]size){ for(int i=0;i<size[0];i++){ if(arr[i]==id){ return true; } } return false;}public stati...

2020-03-31 13:59:17 255

原创 函数递归练习(斐波那契数列,二分查找)

1.函数递归1)问题规模大→划分小规模(如果没有问题规模,自己构建)2)函数自己调用自己(体现问题规模不断缩小)3)函数推出条件(防止死递归)2斐波那契数列public static int fibonacci(int n){ if(n==1||n==2){ return 1; } return fibonacci(n-1)+fibonacci(...

2020-03-30 12:26:03 216

原创 字符数组练习及二维数组练习

1.输入一个英文单词顺序,反转句子中单词的顺序,但单词内字符的顺序不变。例如输入“i am a student”,输出"student a am i"public static void reverse(String str){ String[]arr=str.split(" "); for(int i=0;i<arr.length/2;i++){ Str...

2020-03-29 11:24:28 380

空空如也

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

TA关注的人

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