自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 equals和==的区别

1.==与equals()的区别==比较的是两个对象的地址是否一样,equals重写比的是两个对象的内容是否一样1)对于==如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equ

2020-11-27 11:36:16 81

原创 Object对象的方法

protected Object clone()创建并返回此对象的一个副本。 boolean equals(Object obj)指示其他某个对象是否与此对象“值相等”。 protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 Class<?> getClass()返回此 Object 的运行时类。是一个class对象。 int hashCode()返回该对象的哈希码值。 void notify()唤醒在此对象监视器

2020-11-27 11:33:43 124

原创 单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。//饿汉式 比较急 所以直接返回对象class Single{

2020-08-04 22:28:12 137

原创 线程的生命周期及之间的转换

一、线程的生命周期 在Java中,任何对象都有生命周期,线程也不列外。当Thread对象创建完成,线程的生命周期就开始了。当run()方法中代码正常执行完毕或者线程抛出一个未捕获的异常(Exception)或者错误(Error)时,线程的生命周期便会结束。线程整个生命周期可以分为五个阶段,分别是新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)和死亡状态(destory),线程的不同状态表明了线程当前正在进行的活动。在程序中,通过一些操作,可以是线程

2020-08-04 22:10:43 174

原创 什么是线程安全问题,为什么会出现?怎么解决?

线程安全问题:在操作系统中,进程之间的数据是隔离的。但是注意:如果是一个进程里面多个线程,线程之间是共享一个进程的在Java中,如果使用多个Thread线程启动同一个Runable的线程对象,此时这些线程会共享Runable对象中的属性,就容易出现线程安全问题(非线程安全问题)。下面是一个案例,我们对id进行操作,会发现这里id每次答案都不是一样的,我注解掉的是给加了锁的。package com.openlab.day24;public class TestThread03 { pu

2020-08-04 22:00:48 1048 1

原创 synchronized锁和Lock锁的区别

我们今天来学习一下线程安全的问题:线程安全是在多线程编程中,有可能会出现同时访问同一个 共享、可变资源 的情况,始终都不会导致数据破坏以及其他不该出现的结果。这种资源可以是一个变量、一个对象、一个文件等。在我们学习高并发的时候,我们为了防止我们的数据被几个线程同时运行来进行数据的操作,这样会造成数据的破坏,最会系统显示给我们的是一个错误的数据。但是我们计算机系统运行的软件特别多,所以我们肯定想要多线程来运行程序,这样效率特别高,但是我们也遇到了问题,就是两个数据被同两个线程共同运行时,如何保持数据的

2020-08-04 18:35:18 270

原创 请简述HashMap、Hashtable、ConcurrentHashMap三者间的异同

子类HashMap: 基于Hash表实现的一个Map结构(k-v键值对) 1、jdk1.2提供的,线程不安全的 2、初始化的数组长度是16,是2的幂次方 3、jdk8之后,如果链表的长度大于8,这个单向链表就会转换为红黑树 如果链表长度小于6位,就会从红黑树转换链表 4、数组扩容时,扩容的大小是原有数组长度的的2倍。 5、HashMap的键可以是null,但是只能有一个 子类...

2020-07-28 23:00:26 156

原创 说明HashSet、TreeSet、LinkedHashSet之间的关系。

HashSet、TreeSet、LinkedHashSet都是实现了Set接口,然后将一系列数据放在一起,其中的数据不能重复。Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。Set判断两个对象相同不是使用==运算符,而是根据equals方法。HashSetHashSet特点不能保证元素的排列顺序,顺序有可能发生变化,其运用的是HashMap存储的(Hash表),不能有重复的元素;当向HashSet结合中存入一个元素时,HashSet会调用该对象的hash

2020-07-27 21:20:13 104

原创 Statement和PreparedStatement的区别

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率.2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理4.执行许多SQL语句的JDBC程序...

2020-07-14 22:47:57 98

原创 SQL查询语句关键字的执行顺序

SQL查询语句关键字的执行顺序:首先我们看一下我们经常使用的SQL语句的关键字:select、from、where、group by、having、order by、limit执行的顺序:from、where、group by、having、select、order by、limitfrom:首先我们得知道我从哪张表检索数据,这个是最关键的,所以首先执行这个。where:这个是我们自己设置条件,能够过滤掉表中数据,剩余我们所需要的数据。group by:将上面过滤出的数据,进行查

2020-07-14 21:04:20 842

原创 抽象类为什么不能创建对象

这里首先我们先说一下什么是抽象类,抽象类顾名思义就是抽象的,而我们具体的类有具体的方法的,所以抽象类我们可以说是一个模板,简单点说,因为抽象类里没有具体的方法的实现,所以我们创建了也是没有用的,我们去调用抽象类的时候,它的方法都是模板,调用了也是没有用的。这里我们比如说我们创建一个动物的抽象类,但是动物也是分很多种动物,世界上不是只有一只动物,所以我们能创建比如猫和狗的实例类,这些动物它们都会发出叫声,但是叫声都是不同的,但是如果我们创建了一个animals的抽象类,去调用一个sounds的方法,这个是

2020-07-13 14:44:27 449

原创 sql 语句的一些练习

create table Student( no int, name varchar(20), sex varchar(20), birthday varchar(30), class varchar(20)); create table Teacher( no int, name varchar(20), sex varchar(20), birthday varchar(30), prof..

2020-07-07 17:57:27 109

原创 继承

继承由来是什么:当我们在定义若干个类的时候,发现某一些类中具有相同的属性和行为 那么,我们就可以将这些相同的部分进行抽取,独立生成另外一个类,那么这个生成出来 的类我们称之为是父类,其他的被抽取内容的类称之为子类。子类与父类之间就是所谓的继承关系 用 extends来表示 那么在现实生活中,父与子之间的一对多 还是多对多的关系? ...

2020-03-20 19:23:07 73

原创 static关键字

今天让我们来说说static关键字:被static关键字修饰的方法一般被称为静态方法没有被static关键字修饰的方法 一般称为非静态方法。同理 被static关键字修饰的成员变量 叫静态的成员变量,没有被static修饰的叫非静态成员变量。静态方法 只能访问静态的成员变量 如果访问非静态成员变量 那么无法通过编译,无需创建对象,使用类名就可以直接调用 (静态函数意味着就是对象的...

2020-03-20 16:02:26 187

原创 自己用类方法实现一些功能

/** 仿照Java自带的String类 写一个自己的MyString类,基本支持String中大部分的功能。其实String的本质就是一个一维的字符数组,然后再加上其相关的操作数组的长度一旦确定 则不可更改;String的长度一旦确定 也不可更改;更重要的是,String的内容一旦确定 也不可更改;String是一个不可变对象 意味着我们不能在原地修改String的内容 只能重新...

2020-03-20 13:38:31 135

原创 面向对象(代码)

定义一个解决二元一次方程的类:class QuadrationEquation{ double a; double b; double c; double delt; public boolean isSovled(){ delt=b*b-4*a*c; return delt>=0; } publi...

2020-03-19 22:55:06 450

原创 面向对象基本概念

三大特性是:封装,继承,多态所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序...

2020-03-02 22:44:04 183

原创 力扣

class Solution { public int[] decompressRLElist(int[] nums) { int len = 0; for(int i = 0; i < nums.length; i += 2){ len += nums[i]; } int[] res = ...

2020-02-23 18:47:46 141

原创 牛客网第一天

1.下列不属于访问控制符的是(D)A publicB privateC protectedD static答案:D public 公有 private私有 protected受保护 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。2.下列外部类定义中,不正确的是:(C )class x { .... }...

2020-02-23 16:39:57 243

原创 第五章数组类型题

两种解题思路 思路1:数组长度不固定 需要读取一个数据 数组扩容 填入数据数据填入之后进行排序 然后遍历数组依次判断数据的个数连续相等import java.util.*;class Demo05_01{ public static void main(String[] args){ /* 思路1:数组长度不固定 需要读取一个数据 数组扩容...

2020-02-18 17:09:43 168

原创 四种排序方法

第一种排序方法:冒泡排序首先我们先了解一下什么是冒泡排序,冒泡排序它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一...

2020-02-18 15:49:34 1287

原创 第四章的题型

import java.util.Scanner;class Demo04_01{ public static void main(String[] args){ //1.先输入一个数字 Scanner scanner=new Scanner(System.in); System.out.print("请输入一个数字:"); ...

2020-02-15 15:46:14 156

原创 汉诺塔问题递归算法

首先让我们来了解一下什么是汉诺塔吧。汉诺塔问题的描述是:设有三根标号为A,B,C的柱子上,在A柱上放着n个盘子,每一个都比下面的略小一点,要求把A柱上的盘子全部移动到C柱上,规则是:一次只能移动一个盘子;移动的过程中大盘只能放在小盘下面;在移动过程中盘子可以放在A,B,C的任意一个柱子上。递归方法求解:一个盘子的汉诺塔问题可直接移动(递归出口)。n个盘子的汉诺塔问题可递归表示为如下的子问题...

2020-02-15 15:40:40 723

原创 关于常用函数的一些题型

问题1:求s2在s1中出现的次数s1="abcabcbcacbabbabcba" s2="abc" String s1="afjoafagojoaage"; String s2="abc"; int count=0; for(int i=0;i<s1.length()-s2.length()+1;i++){ ...

2020-02-15 14:14:38 206

原创 数组

数组的定义:之前在定义数据的时候,大部分都是用变量来存储数据如果我们的程序中出现大量的数据怎么办?连续输入多个数字,连续输入多个坐标点,一般而言会创建多个变量存储这些数据,显得比较麻烦。这些变量基本上类型是共通的,那我们就可以用一个容器将所有的数字进行管理。类似于字符串,字符串其实就是若干个字符的容器而已,“abc”可以通过索引/角标来获取其中某一个字符。[1,2,3,4,5]类...

2020-02-15 13:42:20 587

原创 递归的两个经典题型

例题1:计算1+2+3+4+5+...+98+99+100这里我们假设f(n)这个函数是求1~n的累加,那么f(100)就是我们要求的答案PS:写递归时,一定要先写它的end!这里我们写出它的规律: f(n)=f(n-1)+n f(100)=f(99)+100 return 1+2+3+..+99 +100 f(99)=f(98...

2020-02-14 22:44:47 131

原创 一些基本的循环类型题(主要是思想)

import java.util.Scanner;class Demo03_07{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); //1.先输入年份 System.out.print("请输入年份:"); ...

2020-02-11 19:31:20 178

原创 for循环的一些经典例题

做这些题首先要找规律发现这个题跟y=|x|+1有关/* 4 3 2 1 2 3 4-3 -2 -2 0 1 2 3第4行 x∈[-3,3] y=|x|+1第5行 x∈[-4,4] y=|x|+1*/import java.util.Scanner;class Demo03_14{ public static void main(String[] args...

2020-02-11 18:54:38 835

原创 关于循环的一些经典例题(经典if switch)

import java.util.Scanner;class Demo3_03{ public static void main(String[] args){ Scanner input=new Scanner(System.in); System.out.print("今天是周几(周日为0,周一为1,以此类推):"); int t...

2020-02-11 18:29:45 447

原创 第二章关于基本数据与计算的一些例题

import java.util.Scanner;class Demo1_01{ public static void main(String[] args){ System.out.print("Enter a degree in Celsius:");//输出语句 Scanner input=new Scanner(System.in);//调用...

2020-02-11 18:08:33 202

原创 函数(方法)

本章,让我们来介绍下什么是函数函数在java中函数也叫成方法,都是一个意思;函数就是封装了具备特定功能的一段代码块,解决了重复性代码的问题。为什么需要函数呢?目的是为了提高程序的复用性和可读性。函数的格式 修饰符 返回值类型 函数名(形式参数类型1 参数名1,形式参数类型2 参数名2,形式参数类型3 参数名3......) ...

2020-02-11 17:38:43 177 1

原创 java流程控制语句

一、顺序结构代码从主函数开始逐行向下运行;也是一种宏观的代码运行结构;二、选择结构if语句基本格式if(条件表达式){ 当条件为true时执行的代码;}else{ 当条件为false时执行的代码;}单if形式if(条件表达式){ 当条件为true时执行的代码;}嵌套if-el...

2020-02-08 18:39:37 81

原创 基本程序设计

一、基本数据与计算1、 关键字Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。一些被Java语言赋予了特殊含义的单词,不能随意使用,具体点说就是一些被Java语言赋予了特殊含义的单词,不能随意使用...

2020-02-08 17:49:58 119

原创 计算机、程序和Java概述

一、计算机什么是计算机:计算机包括硬件( hardware ) 和软件( software) 两部分。一般来说,硬件包括计算机中 可以看得见的物理部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特 定的任务。一台计算机是由以下几个主要的硬件组件构成的中央处理器(CPU) 内存(主存) 存储设备(例如,磁盘和光盘) 输入设备(例如,鼠标和...

2020-02-08 16:31:07 141

空空如也

空空如也

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

TA关注的人

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