- 博客(34)
- 收藏
- 关注
原创 蓝桥杯-乘积尾零
/*求相乘后有多少个零(乘积尾零)*/public class Multiply { public static void main(String[] args) { int[] arr = {5650, 4542, 3554, 473, 946, 4114, 3871, 9073, 90, 4329, 2758, 7949, 6113, 5659, 5245, 7432, 3051, 4434, 6704, 3594,
2022-03-03 22:31:29 247
原创 MySQL常用命令
登录root用户:mysql -uroot -p查看现有的数据库:show databases;创建数据库:create database 数据库名字;选择数据库:use 数据库名字;查看当前数据库中的表:show tables;查看其它数据库中的表:show tables from 数据库名字;向当前数据库导入数据:source sql脚本;删除数据库:drop database 数据库名字;查看当前数据库中表的结构:desc 表名;查看当前使用的数据库:select database.
2022-02-22 14:57:53 464
原创 蓝桥杯——跑步锻炼,统计总共跑步公里数
/*小蓝每天都锻炼身体。正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?*/public class RunWorkout { public static void main(String[] args) { int sum
2022-02-19 22:39:28 464
原创 记录一个关于包装类调用wait方法或者notify方法会报java.lang.IllegalMonitorStateException异常
IllegalMonitorStateException异常表示:当前线程不是对象锁的持有者,即调用wait方法或者notify的对象不在synchronized的括号里面,调用看如下代码:public class Test { public static void main(String[] args) { Integer i = 0; MyThread10 m = new MyThread10(i); m.start(); }}cl
2022-02-17 19:06:11 434 1
原创 java中用wait方法和notify方法实现“生产者和消费者模式
wait()方法的作用:o.wait();方法的调用,会让“当前线程(正在o对象上活动的线程)”进入等待状态。notify()方法的作用:唤醒正在o对象上等待的线程。(notifyAll()方法是唤醒o对象上处于等待的所有线程。)...
2022-02-17 18:35:18 982
原创 对Java多线程编程的初步了解,实现多线程的三种方式以及多线程并发安全的线程同步机制
什么叫进程?什么叫线程?进程相当于一个应用程序,线程就是进程中的一个应用场景或者说是一个执行单元,一个进程可以启动多个线程,每个线程执行不同的任务,一个线程不能单独存在,他必须是进程的一部分,当进程中所有的非守护线程都结束运行后,这个进程也随之结束。对于Java程序来说,JVM就是一个进程,JVM会启动一个主线程调用main方法,还会启动一个垃圾回收线程负责看护,回收垃圾。所以,java程序中至少有两个线程并发。(注意:进程和进程之间内存独立不共享,但线程与线程之间存在资源共享,在java中,线程和线..
2022-02-17 14:46:32 3797
原创 java实现线程死锁
public class DeadLock1 { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); // t1和t2两个线程共享o1,o2 MyThread1 m1 = new MyThread1(o1,o2); MyThread2 m2 = new MyThread2(o1,o2);
2022-02-17 10:52:29 115
原创 java IO流
1.什么是IO流?I:InputO:OutPut通过IO流可以完成硬盘文件的读和写2.IO流的分类?按照流的方向可以分为输入流(读)和输出流(写);按照读取数据的方式可以分为字节流(一次读一个字节,什么文件都可以读)和字符流(一次读一个字符,只能读纯文本文件)3.java中所有的流都是在:java.io.*;下4.java IO流这块有四大家族: 四大家族的首领: java.io.InputStream 字节输入流 java.io.OutputStream 字节输出流 java.
2022-02-14 19:54:12 107
原创 java中的集合框架
1.集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)list.add(100); //自动装箱Integer注意:集合在java中本身是一个容器,是一个对象。集合中任何时候存储的都是“引用”。2.集合在java JDK中哪个包下?java.util.*;所有的集合类和集合接口都在java.util包下。3.在java中集合分为两大类:一类是单个方式存储元素:单个方式存储元素,这一类集合中超级父接口:
2022-02-13 16:53:04 341
原创 java中的增强for循环
/*增强for循环* 语法格式:* for(元素类型 变量名: 数组或集合) {* System.out.println(变量名);* }* 缺点:没有下标,在需要使用下标的循环中不建议使用*/public class ForEachTest01 { public static void main(String[] args) { int[] arr = {10,22,32,24}; for (int data: arr) {
2022-02-12 16:14:21 653
原创 java中的泛型机制
1.Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。2.泛型这种语法机制只是在编译阶段给编译器参考的,运行阶段泛型没用3.泛型在集合中的好处:使集合中存储的元素类型统一了,从集合中取出的元素类型都是泛型指定的类型,不需要进行大量的向下转型4.泛型的缺点:限制了集合中元素的种类5.泛型在集合中的应用举例import java.uti
2022-02-12 15:45:53 398
原创 java中对于数组需要知道的点
对于数组当中存储的是“java对象”的话,实际上存储的是对象的"引用(内存地址)"(数组中不能直接存储Java对象)数组是引用类型,所以数组对象是在堆内存当中的,(数组是存储在堆当中的)。数组一旦创建,长度不可变。Java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object。...
2022-02-11 23:32:25 299
原创 java中的异常机制
什么是异常?java中提供异常处理机制有什么作用?异常是程序在执行过程中出现的一些不正常情况;异常能够提高程序的健壮性,java中提供了异常处理机制,能够将程序执行过程中发生的不正常情况打印到控制台,提醒程序员。异常信息由JVM打印。异常在java中以什么形式存在?异常在java中以类的形式存在,每一个异常类都可以创建异常对象。所有的异常类是从 java.lang.Exception 类继承的子类。异常发生了,底层一定会new一个异常对象出来。public class TestExce..
2022-02-10 17:57:14 314
原创 java中的包装类Integer、整数型常量池
试分析以下程序的执行结果:public class IntegerTest01 { public static void main(String[] args) { Integer a = 127; Integer b = 127; System.out.println(a == b); Integer x = 128; Integer y = 128; System.out.println(x ==
2022-02-08 19:56:32 282
原创 java中打印引用数据类型为什么会自动调用toString方法——System.out.println(引用数据类型变量)
Object obj = new Object(); System.out.println(obj);我们可以分析一下上面两行代码来得到答案:我们可以点击看到println方法源代码为:public void println(Object x) { String s = String.valueOf(x); synchronized (this) { print(s); newLine(); ..
2022-02-08 16:22:58 1330
原创 java中StringBuffer(StringBuilder)的用途,以及底层进行字符串拼接的原理
在java中频繁使用字符串拼接,会在方法区中占用大量内存,因为java中字符串是不可变的,每一次拼接都会产生新字符串,即要在字符串常量池中开辟新的空间存储它(产生新的对象)。所以就有了StringBuffer这个类,用来解决字符串拼接造成方法区内存浪费的问题(StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象)。那么下面我们来看一下它的具体实现:1.首先创建StringBuffer对象,它的默认初始化容量(字符串缓冲区)是16(无参构造情况下),这
2022-02-08 15:37:15 1783 1
原创 关于java中对String在内存存储方面的理解,以及字符串常量池的作用
我们知道JVM分三块内存区域——栈、堆和方法区java中的数据类型分——引用数据类型和基本数据类型String属于引用数据类型,那么创建的字符串存在哪里呢?例如对以下代码进行内存分析:public class TestString01 { String s1 = "asd"; String s2 = "asd" + "jkl"; String s3 = new String("asd");}我们首先要知道,双引号括起来的字符串存储在字符串常量池中,字符串常量池又存在于方法
2022-02-07 19:43:50 369
原创 二分法查找
/* 第一:二分法查找建立在排序的基础之上。 第二:二分法查找效率要高于“一个挨着一个”的这种查找方式。 第三:二分法查找原理? 10(0下标) 23 56 89 100 111 222 235 500 600(下标9) arr数组 目标:找出600的下标 (0 + 9) / 2 --> 4(中间元素的下标) arr[4]这个元素就是中间元素:arr[4]是 100 100 < 600 说明被查找的元素在100的右边。 那么此时开始下标变成:4 + 1
2022-02-07 16:43:33 373
原创 冒泡排序算法
public class BubbleSort { public static void main(String[] args) { int[] a = {15,262,78,56,92,31,45}; int[] b = {15,262,78,56,92,31,45}; int[] c = {15,262,78,56,92,31,45}; /*sun公司包装的工具类Arrays,sort方法自动排序*/ System
2022-02-07 13:37:59 54
原创 java中的数组拷贝(复制)方法——System.arraycopy
源码如下:public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);由上可知,底层调用c++代码实现,属于System类中的静态方法。下面说一下它的五个参数代表什么意思:第一个参数src代表你要拷贝.
2022-02-06 20:20:15 790
原创 JAVA main方法中“String[] args”的作用
JVM在调用main方法的时候,会自动传一个String数组过来;通过测试可知,args不是null,它的长度为0,即里面没有值;这个数组是留给用户的,用户可以在控制台上输入参数,这个参数自动会被转换为“String[] args”,例如在dos命令窗口运行Test这个class文件,我们输入命令“java Test asd dfg jkl”,这个时候JVM会通过空格的方式将类名(Test)后面的“asd dfg jkl”进行分离,分离完成之后,作为三个元素存到args数组里。相当于String[] .
2022-02-06 19:17:51 487
原创 java中的数组这种数据结构的优缺点
数组这种数据结构的优缺点是什么?优点:查询或者检索某个下标上的元素时效率极高。原因:1.每个元素的内存地址在空间存储上是连续的。2.每一个元素类型相同,所以占用空间大小相同。3.首元素地址即数组地址,知道首元素地址,知道每个元素占用的空间大小,又知道下标,所以通过计算可以知道某个下标上元素的内存地址。4.数组中存储100个元素,或存储100万个元素,在元素查询或检索方面,效率是相同的。因为数组中元素查找的时候不会一个一个找,是通过数学表达式计算出来的(算出一个内存地址,直接定位)缺点:1.
2022-02-06 16:45:07 1117
原创 什么叫API?
API(Application Program Interface)即应用程序编程接口整个JDK的类库就是一个javase的API每一个API都会配置一套API帮助文档SUN公司提前写好的这套类库就是API。(一般每一份API都对应一份API帮助文档。)...
2022-02-05 13:06:48 182
原创 java中的访问控制权限
private表示私有的,只能在本类中访问protect表示受保护的,只能在本类、同包以及子类中访问public表示公开的,在任何位置都能访问默认的只能在本类以及同包下访问
2022-02-05 12:24:28 159
原创 java中的package和import机制
package为什么要使用包(package)机制?为了方便程序的管理,不同功能的类放在不同的包下。package怎么用?package是一个关键字,后面加包名。例如:package com.baidu.javase.chapter01;注意:package语句只能出现在java源代码的第一行。包的命名规范公司域名倒序 + 项目名 + 模块名 + 功能名对于带有package的java程序怎么编译和运行(不使用开发工具)?用记事本编写以下程序package com.
2022-02-04 16:46:26 369
原创 java中的抽象类和接口
什么是抽象类?将类和类之间的共同特征提取出来形成抽象类,抽象类和抽象类之间还可以进一步抽象。抽象类无法实例化。虽然抽象类不能被实例化,但是会有构造方法,供子类使用。什么是抽象方法?抽象方法表示没有实现的方法,即没有方法体的方法。有抽象方法的类一定是抽象类,但抽象类不一定有抽象方法。所以继承抽象类的非抽象类必须对抽象类中的抽象方法进行重写。...
2022-02-04 14:47:06 376
原创 java中的final关键字的用法
final表示最终的,不可变的。final可以修饰类、方法和变量。final修饰的类无法被继承。final修饰的方法无法被覆盖,无法被重写。final修饰的变量的值无法被更改。-注:实例变量在无参构造方法执行的过程中会给默认值,局部变量是没有默认值的,如图所示; 规定final修饰的实例变量必须在定义的时候手动赋初值,而局部变量可以先定义,之后在赋值,但赋值之后不允许更改,如图所示。...
2022-02-02 23:24:53 289
原创 java中类的方法分类:构造方法、实例方法和类方法的区别
构造方法定义:负责对象的初始化工作,并为实例变量赋予合适的初始值。作用:构造出一个类的实例;构造方法在调用执行之后是有返回值的,但是不用写“return”语句,因为构造方法结束的时候java程序自动返回值,返回值类型是构造方法所在类的类型,由于构造方法的返回值类型就是类本身,所以返回值类型不需要编写。当一个类你没有自定义构造方法的话,系统默认提供一个无参构造,这个构造方法称为缺省构造器。如果手动定义了构造方法,那么系统将不再提供缺省构造器。构造方法支持重载实例变量的内存空间是在构造方法执行的
2022-01-29 22:49:01 2962
原创 认识java
JAVAC命令和JAVA命令javac命令是将.java文件编译成.class文件java命令是运行.class文件args数组为开发人员在命令行状态下和程序交互提供了一种手段从控制台接收参数
2022-01-28 22:15:42 40
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人