
计算机基础
鹏鹏哥哥的小红帽
一个热衷于新技术的煮饭阿姨
展开
-
【浅谈】缓存穿透、缓冲击穿、缓存雪崩
1、缓存穿透缓存穿透指缓存和数据库都没有数据,用户不断的发起请求查询该数据,这种操作会穿透缓存不断对数据库进行查询,造成数据库压力过大。代码:public Integer findPrice(Long id) { //从缓存中查询 Integer sku_price = (Integer) redisTemplate.boundHashOps("sku_price").get(id); if(sku_price==null) { //缓存中没有, 从数据原创 2021-01-06 10:01:30 · 282 阅读 · 0 评论 -
如何做一些简单的JVM调优和Tomcat优化?
1、JVM的运行参数jvm的参数类型分为三类, 分别是:1)标准参数如: -help -version2)-X参数 (非标准参数)如: -Xint -Xcomp3)-XX参数(使用率较高)如: -XX:newSize -XX:+UseSerialGC简单记住有这三种参数就可以,具体使用到具体情况下具体对待。常见的有:-Xms 和 -Xmx分别是设置 jvm 的堆内存的初始大小和最大大小。 -Xmx20...原创 2020-12-11 17:26:55 · 296 阅读 · 0 评论 -
JVM常用指令
指令码 助记符 说明0x00 nop 什么都不做0x01 aconst_null 将null推送至栈顶0x02 iconst_m1 将int型-1推送至栈顶0x03 iconst_0 将int型0推送至栈顶0x04 iconst_1 将int型1推送至栈顶0x05 iconst_2 将int型2推送至栈顶0x06 iconst_3 将int型3推送至栈顶0x07 iconst_4 将int型4推送至栈顶0x08 iconst_5 将int型5推送至栈顶0x09 lco...原创 2020-12-11 09:13:23 · 139 阅读 · 0 评论 -
IDEA常用的快捷键有哪些?
idea常用的快捷键Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space 自动补全代码Ctrl+空格 代码提示Ctrl+Alt+Space 类名或接口名提示...原创 2020-08-28 12:04:45 · 373 阅读 · 0 评论 -
到底什么是动态代理?用一小段代码简洁描述
前置动态代理:字节码在使用时创建和加载,实现在不修改其他方法的基础上实现对该方法的增强。代码描述1、一个具有接口的类// 一个接口的实现类public class TestImpl implements Test{ /** * 获取参数 * @param value */ public void getValue(int value){ System.out.println("我获得了一个值:"+value); }}原创 2020-08-27 12:22:50 · 229 阅读 · 0 评论 -
MySql数据库忘记root密码怎么办?---重置MySQL的root密码
以Windows为例,不同操作系统方式类似步骤:1、cmd---> net stop mysql (首先停止mysql服务)2、切换至无验证方式启动 mysql 服务:mysqld --skip-grant-tables3、重新打开 cmd 控制台,直接输入 mysql 并回车4、user mysql;切换到 mysql 数据库5、更新 mysql 数据库中的 user 表:update user set password = password('your password..原创 2020-08-10 12:22:35 · 638 阅读 · 0 评论 -
到底什么是事务、事务隔离有哪些级别?
1、概念一个包含多个步骤的业务操作,被事务管理之后,其中的所有操作要么同时成功,要么同时失败2、步骤1)开启事务:start transaction2)回滚:rollback3)提交事务:commit3、事务的四大特征1. 原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败。 2. 持久性:当事务提交或回滚后,数据库会持久化的保存数据。 3. 隔离性:多个事务之间。相互独立。 4. 一致性:事务操作前后,数据总量不变4、事务隔离的级别 多个事务...原创 2020-08-10 12:14:56 · 735 阅读 · 0 评论 -
到底Java中的类加载机制是什么样子的?
简述:1)程序员编写解决问题的代码,生成 .java 源代码。2)Java编译器编译成JVM可以理解的 .class 文件,其中保存着Java代码转换后的虚拟机指令3)当程序需要加载某一个类的时候,虚拟机会加载其对应的 class 文件进入内存,并创建对应的class对象Load:1)加载:通过一个类的完全限定查找此类字节码文件,并利用字节码文件创建一个Class对象。2)验证:确保Class文件的字节流中包含信息符合当前虚拟机要求,不会危害虚拟机自身安全。3)准备:在堆原创 2020-08-10 10:05:26 · 181 阅读 · 0 评论 -
到底什么是数据库范式?很简单的阐述数据库设计思想,包会
前置:数据库表之间的关联关系1.一对一的关系:学生和身份证是一一对应的 可以在任意一方添加 “唯一” 外键指向另一方主键2.一对多的关系:一个部门有多个员工,一个员工有一个部门 在 n 对应的一方建立外键指向 1 的一方的主键3.多对多的关系:一个学生可以选多个课程,一个课程可以被多个学生选择 通过另外建立第三张表,把具有多对多关系的两张表的主键作为其外键,分别指向上述两张表正文:数据库范式据百度原文:目前关系数据库有六种...原创 2020-08-09 21:21:33 · 910 阅读 · 0 评论 -
通过自定义注解获取日志
1.定义一个注解package com.hisense.demo02;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * @author : sunkepeng E-mail : sunkepengouc@163.原创 2020-08-08 22:05:11 · 267 阅读 · 0 评论 -
为什么说反射是框架的“灵魂”?
前导:反射中获取class对象的三种形式:1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 多用于配置文件,将类名定义在配置文件中。读取文件,加载类2. 类名.class:通过类名的属性class获取 多用于参数的传递3. 对象.getClass():getClass()方法在Object类中定义着。 多用于对象的获取字节码的方式同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的C原创 2020-08-07 18:18:48 · 1040 阅读 · 0 评论 -
用Map的方式来实现统计字符串输入中字符个数
package com.hisense.demo;import java.util.HashMap;import java.util.Map;import java.util.Scanner;/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/8/4 15:33 * * 题目:一个字符串中每个字符出现的次数 * 分析:1、使用Scanner获得用户输入字符串 * 2、创建Map集合,ke.原创 2020-08-04 15:57:01 · 891 阅读 · 0 评论 -
简单的斗地主发牌逻辑是如何实现的?
1、准备54张牌2、洗牌3、发牌4、看牌package com.hisense.demo02;import java.util.ArrayList;import java.util.Collections;/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/8/3 17:46 * <p> * 斗地主: * 1、准备扑克,54张牌 * 2、洗牌 * 3、发牌 * 4、看原创 2020-08-03 18:04:00 · 1852 阅读 · 0 评论 -
到底什么是“内部类”?到底如何使用“匿名内部类”?
1.内部类/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/22 14:27 * * 如果一个事物的内部包含另一个事物,那么这就是一个类内部包含另一个类。 * 例如:身体包含心脏,汽车包含发动机。。。 * 内部类必须在外部类内部才能正常使用 *-------------------------------------------------------------------- * 分类: *原创 2020-07-23 09:29:37 · 444 阅读 · 0 评论 -
不同权限的修饰符的范围都是什么?public、protected、(default)、private
概述在Java中提供了四种访问权限, 使用不同的访问权限修饰符修饰时, 被修饰的内容会有不同的访问权限,public: 公共的。 protected: 受保护的 default: 默认的 private: 私有的权限使用规范public权限最大,private权限最小编写代码时,如果没有特殊考虑,建议:成员变量使用private,隐藏细节 构造方法使用public,方便创建对象 成员方法使用public,方便调用方法...原创 2020-07-22 14:25:20 · 1556 阅读 · 0 评论 -
到底如何使用“final”关键字?
final不可改变。 可以用于修饰类、 方法和变量 类: 被修饰的类, 不能被继承。 方法: 被修饰的方法, 不能被重写。 变量: 被修饰的变量, 不能被重新赋值。格式1.修饰类final class 类名{ // TODO}Java API中有很多类如,public final class String、public final class Math等,都是作者不让我们修改类的内容。2.修饰方法修饰符 fina...原创 2020-07-22 13:55:44 · 168 阅读 · 0 评论 -
到底如何使用“接口”,示例阐述
题目笔记本电脑使用鼠标、键盘分析笔记本电脑是一个类,鼠标是一个类,键盘是一个类------鼠标和键盘都是通过USB插到笔记本电脑上的,我们就可以把USB插口理解为一个接口,也就是多个类的公共规范。编程中,我们就需要实现三个类和一个接口。实现1.编写各个类的公共规范 ---> 接口/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/22 11:57 */public inter原创 2020-07-22 12:38:23 · 321 阅读 · 0 评论 -
到底什么是对象的“向上转型”和“向下转型”?
/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/22 10:49 * * 向上转型:一定是安全的,但是一旦向上转型为父类,就无法调用子类特有的方法。从小范围转向大 * 范围,如从猫转型成动物。 * 描述: * 对象的向上转型就是多态 * 格式: * 父类名称 对象名 = new 子类名称(); Animal animal = new Cat(); * 含义:右侧创建一个子类对象,把他当做父.原创 2020-07-22 11:15:12 · 893 阅读 · 0 评论 -
到底什么是“多态性”?
1.多态的基本概念/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/22 8:57 *面向对象有三大特征:封装、继承、多态 * 封装、继承是面向于类或者接口; * 多态面向的是对象,指的是对象的多态性 * -------------------------------------------------- * 代码中的多态性,其实就是一句话,父类引用指向子类对象,就是父类可以引用不同子类的对象,产原创 2020-07-22 10:31:36 · 5489 阅读 · 0 评论 -
Java9+版本中接口中内容简述及注意事项
接口是多个类的公共规范格式:public interface 接口名称{ // 接口内容}前置Java9+版本内容1.成员变量是常量,格式:[public] [static] [final] 数据类型 常量名称 = 数据值;注意: 常量必须进行赋值,一旦赋值不能改变;常量名称完全大写,之间连接用下滑线;即使不加[public] [static] [final]也可以,但只能是常量。2.接口中最重要的是抽象方法,格式:[public] [abstra..原创 2020-07-21 18:08:18 · 168 阅读 · 0 评论 -
到底什么是“抽象类”?
概述: 如果父类中的方法,被它的各个子类重写,每个子类各自的实现都不同。那么父类方法的实现就没有存在的意义了,一个方法由声明+实现两部分组成,那么我们只保留声明,让子类各自去实现,那么我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。// 抽象类public abstract class AbstractTest{ // 抽象方法,只有方法声明,没有方法体{} public abstract void method();}抽象类的使..原创 2020-07-21 15:04:13 · 583 阅读 · 0 评论 -
Java使用Math类来计算绝对值在一定范围内的整数个数demo
/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/21 11:48 * * 题目: * 计算在-10.8到5.9范围中,绝对值大于6或者小于2.1的整数的个数 * 分析: * 1.有范围--->用for循环 * 2.起点位置-10.8应该转换成-10 * 2.1可以使用Math.ceil方法,向上取整 * 2.2可以强制转换成int,自动舍弃小数位 * 3.每一个数字都是整数,所以步.原创 2020-07-21 11:58:20 · 488 阅读 · 0 评论 -
Java.util.Arrays中的toString()和sort()基本使用形式
import java.util.Arrays;/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/21 10:31 * * java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组的常见操作。 * * public static String toString(数组):将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3......]) * publ.原创 2020-07-21 10:44:39 · 1070 阅读 · 1 评论 -
Java中static关键字的基本含义和相关用法、内存图及静态代码块
基本含义和相关用法用static修饰的内容,在类当中只保存一份,所有本类对象共享同一份。一旦使用了static关键字,那么该内容不再属于对象自己,而是属于类的,所以但凡是本类的对象,都共享同一份。/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/21 9:14 */public class Student { private int id; private String nam原创 2020-07-21 10:28:26 · 224 阅读 · 0 评论 -
Java实现键盘输入字符计数,简单Demo
/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/20 16:50 * * 题目: * 键盘输入一个字符串,并且统计其中各种字符出现的次数 * 种类有:大写字母,小写字母,数字,其他 * * 思路: * 1.用Scanner获得键盘输入 * 2.用String str = sc.next();获得字符串 * 3.定义四个变量分别代表四种字符各自出现的次数 * 4.需要对字符串遍历,Strin.原创 2020-07-21 08:57:45 · 516 阅读 · 0 评论 -
Java字符串拼接练习
/** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/20 16:37 * * 题目: * 定义一个方法,把数组{1,2,3}按照指定格式拼接成一个字符串。格式如下:[word1#word2#word3]。 * * 分析: * 1.首先准备一个int[]数组,内容是1,2,3 * 2.定义一个方法把数组转化成字符串 * 三要素: * 返回值类型:String * 方法名称:fromArrayTo.原创 2020-07-21 08:58:02 · 409 阅读 · 0 评论 -
Java中字符串String特点以及简述
java.lang.String类代表字符串API中说明,Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。就是说:程序当中所有的双引号字符串都是String类的对象。(就算是没有new,也是)字符串特点:1.字符串内容永不可变。2.字符串可以共享使用。3.字符串效果相当于char[]字符数组,但是底层原理都是byte[]字节数组。创建字符串3+1种方式:三种构造方法:public String():创建一个空白字符串,不含任何内容。// 无参构原创 2020-07-21 08:58:17 · 1856 阅读 · 0 评论 -
Java根据条件筛选ArrayList中的随机数字
/*题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中。要求按照自定义的方法实现筛选。分析:1.需要一个大集合,用来存储int数字:<Integer>2.随机数字就用Random nextInt3.循环20次,把随机数字存储到大集合中:for循环、add方法4.定义一个方法,用来进行筛选。筛选:根据大集合,筛选符合要求的元素,得到小集合。三要素:返回值类型:ArrayList小集合(里面元素个数不确定)方法名称:getSmallList参数列.原创 2020-07-20 14:51:46 · 539 阅读 · 0 评论 -
Java生成6个1~33之间的随机整数,添加到集合并遍历
public class ArrayListTest { public static void main(String[] args) { Random random = new Random(); ArrayList<Integer> list = new ArrayList<>(); for (int i = 0; i < 6; i++) { int r = random.nextInt(33.原创 2020-07-20 14:33:41 · 1125 阅读 · 0 评论 -
ArrayList使用基本类型需要使用其对应的包装类
ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似<int>不能写,但是存储基本数据类型对应的包装类是可以的。所以想要存储基本数据类型,<>中的数据类型必须转换成包装类对应的引用类型。基本类型 基本类型包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble ...原创 2020-07-20 13:46:00 · 686 阅读 · 0 评论 -
Java的猜数字小游戏(1~100)的,代码的简单表达形式
/*题目:用代码模拟猜数的游戏,来简述二分法查找思路:1.首先需要产生一个随机数,使用Random的nextInt方法2.需要键盘输入一个用于猜的数,用Scanner的nextInt方法3.用键盘输入的数来猜数,已经得到了两个数,用if判断 如果太小,提示太小,重试; 如果太大,提示太大,重试; 如果正确,游戏结束4.重试次数不确定,所以要放到while(true)中*/public class GetNumber{ public static voi.原创 2020-07-20 13:07:47 · 2324 阅读 · 0 评论 -
Java中的匿名对象基本概念和使用方式
概念:创建对象时,只有new 类名();这种创建对象的语句,却没有把对象地址赋值给某个变量。这是一种创建对象的简化写法,应用范围有限。格式:new 类名(参数列表);应用场景:1.创建匿名对象直接调用方法,没有变量名。new Scanner(System.in).nextInt();2.一旦调用两次,就会执行两次new,就会创建两个对象。new Scanner(System.in).nextInt();new Scanner(System.in).nextInt(原创 2020-07-20 12:33:50 · 937 阅读 · 0 评论 -
Java中引用类型的一般使用步骤
1.导包 import 包路径.类名称; 如果需要使用的目标类和当前类处于同一个包下,则可以省略导包语句。 除此之外,只有java.lang包下的内容不需要导包,其他的包都需要import语句。2.创建 类名称 对象名 = new 类名称();3.使用 对象名.成员方法名();...原创 2020-07-20 11:51:45 · 240 阅读 · 0 评论 -
Java标准类和Java Bean
/*一个标准的类通常有四个组成部分:1.所有的成员变量都要使用private关键字修饰2.为每一个成员变量编写Getter/Setter方法3.编写一个无参数的构造函数4.编写一个全参数的构造函数标准的类也叫做Java Bean*/public class Student { private String name; private int age; public Student(){ } public Student(String.原创 2020-07-20 10:59:32 · 366 阅读 · 2 评论 -
Java中的构造方法浅析
构造方法是专门创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。格式:public 类名称(参数类型 参数名称){ 方法体}注意事项: 1、构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样 2、构造方法不要返回值类型,连void也不要写 3、构造方法不能return一个具体的返回值 4、如果没有任何构造方法,那么编译器会自动生成一个没有参数、方法的构造方法 5、一旦编写至少一个构造方法,编译器将...原创 2020-07-20 10:48:12 · 144 阅读 · 0 评论 -
Java中的this关键字的作用
主要作用:在重名的情况下,起到区分的作用当方法的局部变量和类的成员变量重名的时候,根据“就近原则”,优先使用局部变量。如果需要访问本类中的成员变量,需要使用 this.成员变量谁是this?this一定是存在于一个方法中,那么谁是this?“通过谁来调用包含this的方法,谁就是this”...原创 2020-07-20 10:32:03 · 215 阅读 · 0 评论 -
Java中局部变量和成员变量的区别
局部变量和成员变量区别1、位置不一样局部变量:在方法的内部成员变量:在方法的外部、直接写在类当中2、作用范围不一样(作用域)局部变量:只有方法当中可用,出了方法就不可用成员变量:整个类都可用3、默认值不一样局部变量:没有默认值,使用前必须手动赋值成员变量:如果没有赋值,会有默认值,赋值规则和数组一样4、内存的位置不一样局部变量:位于栈内存成员变量:位于堆内存5、生命周期不一样局部变量:随着方法栈而诞生,随着方法出栈而结束成员变量:随着对象创建而诞生原创 2020-07-20 09:48:46 · 2283 阅读 · 0 评论 -
浅析OSI七层参考模型
OSI七层参考模型。。。。。。。。。。。。。。。。。。。。。。。。。。底层协议:物理层:建立通信的物理基础,完成光电传输的介质。主要完成编码、解码、时钟同步、发送和接收数据、载波检测及提供与数据链路层的接口。数据链路层:逻辑链路控制子层和MAC子层来跟上面网络层和下面物理层连接,负责把网络层数据封装成数据帧在物理层传输。网络层:在一个广域网中,负责寻址,路由选择和地址转换等工作。把数据封装成数据包或者叫做分组。传输层:位于通信子网和传输子网之间的协议,承上启下,检查报文有无错误,保证原创 2020-07-07 14:40:16 · 342 阅读 · 0 评论 -
浅析计算机操作系统原理
计算机操作系统原理简述1.操作系统概述我们从功能、组成、特征、结构4个方面对操作系统进行介绍。1)功能: 从用户角度讲,操作系统是一个管理应用程序的控制程序,管理应用程序; 从资源管理角度讲,操作系统是管理外设、分配资源,对底层硬件管理服务的资源管理器。 操作系统把CPU、内存、硬盘抽象成进程、地址空间、文件来供应用程序使用。层次上在硬件和应用程序之间。开机启动的进程称为守护进程,开机不启动的进程需要用户跟操作系统交互,交互工具为shell,li...原创 2020-07-08 17:17:46 · 6627 阅读 · 0 评论 -
C语言malloc、free与C++的new、delete区别
1、属性new/delete是C++的关键字,需要编译器支持,最终需要编译器来操作内存申请;malloc/free是库函数,需要头文件支持c。2、参数使用new操作符申请内存分配时,无需制定内存块大小,编译器会根据类型自动计算。使用malloc时要显式指出所需内存的大小。3、返回类型new分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无需进行类型转换,是符合安全性的操作符。malloc内存分配成功则返回void *,需要强制类型转换将void *指针转换成我们需要的原创 2020-07-06 17:47:52 · 401 阅读 · 0 评论