自定义博客皮肤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)
  • 收藏
  • 关注

原创 mysql中select查询强化50题(附解答)

masql的查询操作练习题。题目多样,思路多变。嵌套查询,子查询,连接查询一篇博文一网打尽!真正强化了解数据库。

2021-11-27 18:54:42 2059

原创 mysql中 select 查询20道经典基础题

---1:查询EMP表的全部职工的EMPNO、ENAME和JOB。select empno,ename,job from emp;---2:查询EMP表的全部职工的EMPNO、ENAME和JOB,按salary升序次序排列。select empno, ename, job from emp order by salary;---3:查询EMP表的全部列,列的次序为:---JOB,SALARY,ENAME,EMPNO,MGR,HIREDATE,BONUS,DEPTNO,查询结果按年薪降序。se

2021-11-27 17:55:58 661

原创 解决线程安全问题的三种方式

什么是线程安全问题?线程安全问题的产生是因为多给线程访问了共享数据。举一个耳熟能详的例子,三个售票处在网上售卖100张票,假如此时的售票处都在出售第50张票,此时三个窗口卖出去了,而三个售票员都想修改余票数。但是三个人修改之后票数却只少了1张,这就莫名其妙多出了两张。为了解决这种问题,引入了线程安全问题的解决方法。1、同步代码块 使用同步锁的方法,锁对象可以是任意对象,但是必须保证多个线程的使用的对象是同一个锁对象。锁对象的作用是把同步代码块锁住,每次只让一个线程在同步代...

2021-11-17 19:17:15 953 2

原创 用IO流复制文件的方法性能比较

字节流的读取方法适合读取图片、音频、视频等文件。字符流的读取方式适合读取大型文本。我们来对比彼此间的读写效率来进行比较,分别以1.55MB的图片和3M的《剑来》两张文章作位读写对象。字节流1、字节流:FileInputStream、FileOutputStream(逐字节读取)public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStr

2021-11-17 17:21:57 358 1

原创 java中IO流详解+配代码示例

IO流是数据传输的通道,io流根据操作数据的类型又可以分为字符流和字节流。以内存为参照物,读取内存上的内容叫做输入流,往内存上写内容叫做输出流。File类: 文件和目录路径的抽象表示形式。 java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作。路径: 路径分为绝对路径和相对路径。绝对路径是以盘符(C: D: ……)开始的路径。 而相对路径是一个简化的路径。相对...

2021-11-15 19:37:21 567 4

原创 超级详细的安装虚拟机教程--配图--步骤拆分

1、首先我们需要下载两个文件,一个虚拟机文件,一个程序光盘文件。然后我们安装虚拟机, 类似于这两个文件:2、虚拟机安装好之后回来到这个页面:点击创建新的虚拟机3、选择界面,建议选择自定义:4、硬件兼容性win10系统就选择 workstation 15.x5、没有安装过得可能和我这个界面不同,不显示光盘文件。因此勾选这个选项6、选择软件的安装位置,不建议放在C盘,因为文件很大。7、处理器数量可以根据自己需要。正常的话处理器数量选2...

2021-11-14 00:14:21 8423

原创 使用集合的方法实现欢乐斗地主发牌过程的代码详细步骤

我们知道再学习完数组之后,与之类似又比之精妙的集合出现了。其中附带了许多种方法方便了我们对其中的值和索引进行各种操作,这也方便了我们实现斗地主的过程。 首先我们要准备一副牌,这副牌由大小王和52张牌组成,那我们首先定义四种花色,红桃♥、黑桃♠、方片♦、梅花♣。再定义由2~A的十三张数字牌。将花色和数字牌搭配起来,再加上两个王就得到了一副完整的扑克牌。 我们拿到一副牌之后需要进行洗牌,用collections中的shuffle方法即可实现洗牌效果。洗牌之后我...

2021-11-13 22:32:55 1316

原创 Collections类中常用的静态方法总结+代码示例

1、int binarySearch(List<? esxtends Comparable<?supper T>>list,T key) 使用二叉树搜索算法返回指定对象的索引,前提是列表有序。public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(17); list.add(34); l...

2021-11-11 20:01:27 498

原创 Map接口

特点: 1、Map集合是一个双列集合,一个元素包含两个值(Key,value) 2、Map集合中的元素,key和value的数据类型可以相同,也可以不相同。 3、Map集合中的元素,key是不允许重复的,但是value是允许重复的。 4、Map集合中的元素key和value是一一对应的。Map接口的常用实现类:HashMap(无序)HashMap的一个子类:LinkedHashMap(有序)HashMap集合的特点: ...

2021-11-08 00:32:31 264

原创 Set接口

Set接口:1、不允许存储重复的元素2、没有索引,没有索引的方法,也不能使用普通的for循环遍历HashSet集合是Set接口的实现类3、是一个无序的集合,存储元素和取出元素的顺序可能不同4、底层是一个哈希表结构(查询速度非常快)set集合不允许存储重复元素的原理: set集合在用add方法的时候,add、方法会调用元素的hashCode方法和equals方法判断元素是否重复。 步骤如下: 首先计算元素的hashCode值...

2021-11-07 19:55:16 99

原创 ArrayList和LinkedList常用方法演示与解析

ArrayList和LinkedList是接口List的实现类,ArrayList是一个顺序表结构,LinkedList是一个链表结构。顺序表最大的特点就是他可以快速的进行数据的随机访问,链表的有点在于他对数据的增删改非常敏捷,处理效率非常高。但是对于访问数据来说,链表需要通过移动指针来访问遍历结点,因此不如顺序表给出索引位置即可访问数据这样快捷。 我们之前学的数组,数字长度是固定的。如果数组满了,再插入新的元素就插不进去了。数组长度需要我们在一开始就定义好,很不利于今后的...

2021-11-06 19:51:29 682

原创 抽象类与接口

抽象类 多个对象都具有相同的功能,但具体所有的功能却不相同,此时将他们之间相同的功能进行共性抽取就得到了一个抽象类。因为我们只抽取了功能得定义并没有抽取具体的方法体,因此所抽取的方法被抽象方法,抽象方法所在的类称之为抽象类。 抽象类中也可以有非抽象的方法,供子类使用。子类在继承抽象类时必须要重写父类中所有的抽象方法,否则子类仍然为一个抽象类。抽象类和抽象方法必须由abstract修饰。 注意,虽然抽象类中可以构造方法,但是抽象类不能创建对象,因为抽象方法...

2021-11-04 23:19:49 66

原创 java面向对象之多态

为什么需要多态? 由于一个对象在不同的时刻表现出不同的状态,不使用多态会使程序丧失可扩展性和后期可维护性。比如,一个打印机要执行打印操作,黑白打印机和彩色打印机都是执行打印操作,但是结果却是一个得到彩色图片,一个得到黑白图片。这就是一个对象在不同的条件下产生了不同的状态。public class Monster {//定义一个主人类,用于和宠物互动 //比如宠物生病了,主人要送它去医院 public void toHospital(Dog dog){//带狗去医院...

2021-11-03 19:16:05 72

原创 快速排序java实现

快速排序是十大经典排序算法之一,顾名思义,快速排序的特点就是速度快。因此使用十分广泛。算法思想: ​​​​​快速排序的思想就是先找一个基准值,此处将数组array的第一位作为基准值。定义两个指针 i 和 j (并不是真正的指针,只是记录了元素的下标)分别指向数组的首尾元素。首先我们先向前移动指针 j ,边移动边和基准值比较(我们默认升序排列),如果大于基准值就不管它继续向前走,如果小于基准值就让他停下来。将 j 指向的值赋值给 i 位置:array[ i ] = array[ j ...

2021-11-02 21:39:51 85

原创 java面向对象之继承

继承是多态的前提,如果没有继承就没有多态。继承主要就是共性抽取的问题,使类与类之间产生关联,提高代码的复用性。继承关系中的特点: 1、子类可以拥有父类的内容 2、子类还可以拥有自己特有的内容 3、java中继承可以使多层继承:class A{ } class B extends A { } class C extends B{...

2021-11-01 23:17:54 88

原创 java构造方法与方法重载+this的含义与使用

1、构造方法与方法重载: 构造方法:构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。如果构造方法中有什么语句内容,那么当我们创建对象时这个语句就会执行。在下面的这个例子中,我们没有写构造方法,但也可以创建类对象。原因是,如果我们没有写任何构造方法,那么编译器将会默认赠送一个构造方法,这个构造方法是无参构造,方法体内部什么都没有,这个构造方法就与图2等价图1:编译器赠送的构造方法图2:编译器赠送的构造方法但是此时我们在图2中编写了一个...

2021-10-31 14:51:01 485 1

原创 讲解java面向对象与static修饰符使用规则

java是面向对象的编程技术,正是因为这种特点因此java才能大火至今。就像组成汽车的一个个零件,我们要造一辆汽车不用去自己造发动机,造螺丝,造轮胎。只要我们符合标准,这些零件都可以买到,我们只要零件齐全,一个刚入门的修理工也能组装一辆汽车,而不是像艺术家手工打造。那么,java中的类就是组成我们工程的零件。如果某个地方出错了,我们只需要修改相应的类即可。 举一个例子:比如我们要从一个地方到一个地方。我们要规划一下路线,选择交通工具中途可能要换乘,坐哪一辆公交车,坐到哪一站...

2021-10-31 11:34:04 126

原创 Java面向对象之封装:private修饰符和Getter/Setter

在学习getter/setter时,在我们的教材上都会有这么一句话:把成员变量直接暴露在外不符合OOP的封装原则,不安全!应该使用Gettrt/Setter方法来取值和赋值。我刚开始看很费解的一句话,后来渐渐的才搞懂,这句话的含义。就是说,虽然我们可以使用通过对象对类中的成员变量进行赋值,但我们赋的值可能会不符合条件,例如年龄不能为负,身份证号码必须是18位等。这些规范放在setter里面,在我们赋值的时候要经过sette方法中检查合格后再将值赋给成员变量。这就是对成员变量的一种保护,一种封...

2021-10-28 16:28:58 468

原创 解读杨辉三角之二项式编程实现

今天,我终于写了杨辉三角的代码。杨辉三角,之前在数学书的数学广角看过,看个热闹。之前学c语言的时候,也编程过杨辉三角,用的方法是一个数,除了每一行的首尾位,它等于它肩膀上两个数之和。但我今天才知道,原来杨辉三角的行中的元素是二项式的系数,我直呼神奇!但他的编程思路还真不好想。我在网上搜了一下,要么是写了代码很长的,要么就是没有解释直接上代码的,还有一些不开会员或者不买就不给我看的。我直接裂开啊。下面我来详细介绍一下,我结合前人的编程思路。 解读:既然杨辉三角是二项式,那么就...

2021-10-27 20:35:14 278

原创 java学习笔记之冒泡排序及其他

1、冒泡排序 顾名思义,冒泡的意思就是,在水里气泡会咕噜咕噜从水下漂至水上。故,冒泡排序就是,每一次确定一个值的位置。这样循环一轮后,每一个数都被交换到了它最终的位置。 例如数组:31,44,11,66,78,56,34,65,17,65,54,21,45 我们将它升序排序:第一遍遍历 31<44,不交换。 44>11,交换位置。数组变成:31,11,44,66,78,56,34,65,17,21,45 ...

2021-10-26 23:06:29 94

原创 什么是java面向对象

面向对象是一种十分便捷的技术,就像我们打电话,我们虽然不知道电话如何构造,但我们只需要找到一个手机,拨通号码。我们的手机就会帮我们和对方连线。在这个过程中,手机就是我们找到的对象,我们不想或者不会做的事情,让这个对象来做。这就是面向对象。与面向对象相对的就是面向过程,什么叫面向过程呢?所谓面向过程就是,党我们需要实现一个功能的时候,每个具体的细节都需要我们事无巨细的做好,详细处理每一个方面。而面向对象就是一种比较偷懒的方法了,当我们需要实现一个功能的时候,我们不关心具体的实施步骤和底层逻辑。我们就等

2021-10-25 23:08:05 49

原创 认识java一维数组

学过c语言和数据结构的小伙伴应该对数组有了一个深入地了解了,虽然java中的数组和语言大同小异,但由于语法的不同和一些细微的差别,总是让人摸不清格式。 我总结了一下,Java中使用数组的一些易错点。快看看,是不是你走过的坑1、声明数组的方法:①:int[] array = new int[]{1,2,3,4,5};②(省略写法):int array = {1,2,3,4,5}; 方法一中的声明数组,可以将声明和赋值分开写。一般在我们知道...

2021-10-25 17:38:05 231

原创 6道题,让你打牢for、while循环结构基础!

1、计算1000以内所有不能被7整除的整数之和。 算法思路:我们从1-1000,一个数一个数的判断。如果能被7整除,就不管它,如果不能被7整除,就将它累加。 代码:public class CanNotDivi7 { //计算1000以内不能被7整除的数的和。 public static void main(String[] args) { int sum = 0; int i = 1; while(i...

2021-10-21 22:49:10 397

原创 六种位运算符的使用规则

位运算符针对的是二进制数,位运算符用于补码。补码的作用请自行百度。按位与&: 将两个二进制数进行按位与操作,对应位置都为1的位才是1. 例如10&12:1010 1100 -->1000 按位或 | :...

2021-10-21 19:32:11 321

原创 IntelliJ IDEA中常用的快捷键

对于刚入门的java小白来说,提升写代码速度,将大量时间留给我们思考算法是非常重要的!这些快捷键的掌握和熟练使用可以让我们也分分钟敲出几十行代码。但不要靠死记硬背,这就属于经验,建议收藏,常回来看看这些快捷键。将知识化为经验,经验让代码更简单!Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space..

2021-10-20 17:03:23 296

原创 IDEA的基础安装教程!

众所周知,IDEA拥有广大的用户,只要你用java,你就离不开IDEA。首先我们需要有一个安装包!从官网下载安装包,下载后点击安装-->NEXT我们首先安装.exe文件,安装步骤按照提示一步步来。这里会让你选择安装路径,默认的是C盘,但我们最好将文件装在D盘里,这样即使你重装了系统,IDEA仍然能正常使用,后续会方便很多。 此时要注意自己的电脑操作系统是否是64位的,如果是点击下方图片标识位置。在这一步中,点击Run Intellij IDEA选项...

2021-10-18 20:57:32 1628

原创 java安装流程以及环境变量的配置

一、安装包下载万事之始,首先要找到java的安装包,安装包可以在java官网中下载,也可以在公众号中下载,评论区给大家分享一些常用应用程序的公众号,供大家下载。在下载java的同时要注意一下自己需要的版本。通常常用版本是1.8或者1.9的,也可以根据自己需要。还要看准自己的电脑配置选择32位或者64位。 查看电脑配置的方法:进入文件管理系统 -->右键点击此电脑 -->选择属性即可看到自己电脑的配置信息。在系统类型中查看操作系统。标题电脑配置图二...

2021-10-18 17:24:48 1970

空空如也

空空如也

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

TA关注的人

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