Java
Mr.王1874
这个作者很懒,什么都没留下…
展开
-
redis基础整理
1.什么是redis?Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:字符串类型 (String)散列类型 (Hash) ----类似jdk1.8之前的HashMap(数组+链表)列表类型 (List)集合类型 (Set)有序集合类型 (Zset)2.redis的应用场景String应用场景缓存Mysql作为存储层,Redis作为缓存层,绝大部分数据从R原创 2022-03-31 01:31:06 · 636 阅读 · 1 评论 -
自定义一个注解
1. @interface自定义一个注解使用@interface自定义一个注解,会自动继承java.lang.annotation.Annotation接口格式:public @interface 注解名{ 定义的内容 } 2. 添加元注解1.@Target【注解的作用域】 :@Target(ElementType.TYPE) //接口、类、枚举、注解@Target(ElementType.FIELD) //字段、枚举的常量@Target(ElementType.METHOD)原创 2021-12-05 22:36:59 · 367 阅读 · 0 评论 -
Java数组添加元素,键盘录入一个数就添加到数组
一个刚学Java的兄弟问我:Java数组添加元素,键盘录入一个数就添加到数组刚看到这个题就想到了ArrayList的扩容机制,ArrayList底层就是数组,JDK1.8每次add都是将旧数组复制到新数组思路:每添加一次把原来的数组复制到一个新数组,每次数组长度加一代码实现: public static void main(String[] args) { int[] arr = {}; Scanner scanner = new Scanner(System.原创 2021-11-25 01:33:13 · 2158 阅读 · 0 评论 -
设计模式之单例模式
单例模式单例模式算是设计模式中最容易理解,也是最容易手写代码的模式。思想:始终在内存中只有一个对象饿汉式和懒汉式1.饿汉式:类加载的时候就已经创建好对象了静态实例,构造方法私有化,公共的访问方法返回实例(创建对象),是线程安全的。//饿汉式public class Singleton { private static Singleton singleton = new Singleton(); private Singleton(){} publi原创 2021-11-16 20:49:51 · 393 阅读 · 0 评论 -
Java多线程
1.线程和进程进程:是程序执行的一次过程,是系统资源分配的单位线程:是CPU调度和执行的单位一个进程至少包含一个线程在程序运行时,即使没有创建线程也会有多个线程,比如主线程(main)、gc线程…线程的运行是调度器安排调度,先后顺序是不能人为干预的对同一份资源操作时,线程会存在抢夺资源问题,需要加入并发控制每个线程都有优先权,但是具体调用还是要看CPU的心情2.线程的创建继承Thread类,重写run方法,创建线程对象调用start方法启动线程(重点,Thread类本身就实现了Run原创 2021-11-16 17:07:33 · 387 阅读 · 0 评论 -
登陆注册加入验证码
验证码1.作用防止暴力攻击,前端安全保障2.第一步导入jar包 <!-- 验证码认证的依赖--> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> <exclusions原创 2021-09-23 17:48:09 · 195 阅读 · 0 评论 -
Mybatis
mybatis简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。mybatis配置MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:安装原创 2021-09-15 18:11:28 · 132 阅读 · 0 评论 -
Ajax的使用方式
1.Ajax的原生写法// 1)创建代理对象var xhttp;if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xhttp = new ActiveXObject("Microsoft.XMLHTTP");}//2)建立连接xhttp.open("提交方式","url","boolean变量 是否异步,默认true") ;//3原创 2021-09-03 09:48:16 · 96 阅读 · 0 评论 -
老板,来一套原生 Jdbc
1. 什么是 JDBC?JDBC(Java Database Connectivity) Java 连接数据库的规范(标准),可以使用 Java语言连接数据库完成CRUD 操作。2.JDBC 核心思想Java 中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。由数据库厂商提供驱动实现类(Driver 数据库驱动)。3.JDBC 开发步骤3.1 环境搭建(导包)将 mysql 驱动mysql-connector-java-8.0.23复制到项目的 lib 文件夹中。.原创 2021-08-21 11:16:03 · 109 阅读 · 0 评论 -
Java通过反射访问类的成员属性,构造方法,成员方法
反射1.获取类的字节码文件对象Object类的getClass方法:通过类对象获取类的字节码文件对象 Student s = new Student(); Class clazz = s.getClass();类的class属性:通过类名.class获取类的字节码文件对象 Class clazz = Student.class;Class类的forName方法:通过类的全限定名称获取类的字节码文件对象 Class clazz = Class.f原创 2021-08-16 00:28:01 · 251 阅读 · 0 评论 -
Java实现插入排序
插入排序1. 插入排序 时间复杂度:O(N^2)List item原创 2021-07-30 21:10:32 · 295 阅读 · 0 评论 -
Java 键盘录入一个字符串:判断字符串是否为对称字符串
键盘录入一个字符串:判断字符串是否为对称字符串1.方式一分析:1)定义一个功能完成 compare(String str)—返回值 boolean 1.1) 获取字符串长度 str.length() 1.2) 创建一个字符数组:动态初始化 char[] charArray = new char[str.length()] ; 1.3)遍历字符串 ---->通过获取功能: str.charAt(角标);获取到每一字符 赋值字符数组的每一个元素 1.4)遍历charA原创 2021-07-28 21:23:39 · 2388 阅读 · 0 评论 -
Java中String类的常用方法
Java中String类的常用方法1.获取功能int length():获取字符串长度面试题: 在数组中有没有length方法,在String类中有没有length方法,在集合中有没有length方法? !数组中没有length方法,有length属性 int[] arr = new int[3] ; arr.length; ! String类中有length() ! 集合中原创 2021-07-28 20:11:42 · 132 阅读 · 0 评论 -
Java三大特征 封装 继承 多态
Java三大特征1.封装什么是封装?就是将一个类(能够描述现实世界事物的)的属性细节隐藏(成员变量私有化),保证数据的安全性,从而对外提供公共的//访问方法!class Student{ //属性私有化 private String name ;//姓名 private int age ; //年龄 private String gender ;//性别 //... //对外提供公共的访问方法 //给学生的姓名赋值 public void原创 2021-07-24 15:39:10 · 203 阅读 · 2 评论 -
局部变量和成员变量的区别
局部变量和成员变量的区别区别: 1)书写位置不同 成员变量:类中方法外 局部变量:在方法定义中或者方法声明上 2)内存中的位置不同 成员变量:在堆内存中 局部变量:在栈内存中 3)生命周期不同 成员变量:随着对象的创建而存在,随着对象创建完毕,等待垃圾回收器回收对象(空闲时进行回收)才能消失 局部变量:随着方法调用存在,随着方法调用结束而消失 4)初始化不同: 成员变量:在堆内存中由系统默认初始化(根据成员变量的类型进行默认初始化原创 2021-07-24 10:04:37 · 306 阅读 · 0 评论 -
Java实现选择排序
Java选择排序选择排序思想: 使用0角标对应的元素依次和后面角标对应的元素进行比较,小的往前放,第一次比较完毕最小值出现在最小索引处,依次这样比较 比较的次数:数组长度-1次//遍历功能public static void bl(int arr[]) { System.out.print("{"); for(int i = 0 ; i < arr.length ; i++){ if(i==arr.length-1)原创 2021-07-23 17:35:27 · 172 阅读 · 1 评论 -
面试题: 抽象类和接口之间的区别
面试题:抽象类和接口之间的区别1)成员的区别:抽象类中成员变量:既可以是常量,也可以是变量成员方法:既可以是抽象方法(abstract不能省略),也可以是非抽象方法构造方法:既存在无参构造方法,也可以存在有参构造方法(目的:为了给当前类进行数据初始化) abstract class Animal{ private String name ; private int age ; private String c原创 2021-07-22 21:47:38 · 159 阅读 · 0 评论