java学习总结
水果篮子~
这个作者很懒,什么都没留下…
展开
-
Python入门——函数进阶
原创 2021-10-23 17:32:30 · 177 阅读 · 0 评论 -
Java中的线程池
创建一个数目无上限,但是线程不会轻易销毁的线程池,初始情况下,线程池里面没有线程,随着注册任务进去,就会创建一些线程来处理任务,任务完成之后,线程不会立刻销毁,而是仍然在等待执行新的任务。1. 线程池执行execute/submit方法向线程池添加任务,当任务小于核心线程数corePoolSize,线程池中可以创建新的线程。创建一个固定大小的线程池(线程数目是固定的),不管任务有多少,线程的数目不会增加,任务就在阻塞队列中排队。2. 当任务大于核心线程数corePoolSize,就向阻塞队列添加任务。原创 2021-10-23 17:31:52 · 276 阅读 · 0 评论 -
创建线程实例
类名上面ctrl+shift+T 进行单元测试(junit)子类继承父类,在子类中就可以查看父类的所有方法crtl+o,然后进行重写原创 2021-10-22 21:55:10 · 321 阅读 · 0 评论 -
HTTP 与 HTTPS
一、HTTP协议和HTTPS协议的区别二、对称加密与非对称加密对称加密非对称加密三、HTTPS加密过程一、HTTP协议和HTTPS协议的区别 HTTP HTTPS 端口 80 443 安全性 无加密、安全性较差 有加密机制,安全性较高 资源消耗 较少 由于加密处理,资源消耗更多 是否需要证书 不需要 需要 协议 运行在TCP协议之上 运行在SSL协议之上,SSL运行在TCP协议之上 二、对原创 2021-10-22 20:37:31 · 241 阅读 · 0 评论 -
一、框架学习——Spring
一、使用Spring的好处轻量:Spring 是轻量的,基本的版本大约2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开 容器:Spring 包含并管理应用中对象的生命周期和配置 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全原创 2021-10-21 22:09:09 · 280 阅读 · 0 评论 -
数据库的相关概念
1.数据库的三范式2.MySQL支持的存储引擎3.SQL的约束4.MySQL中的varcahr和char的区别1.数据库的三范式第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。 第二范式:要求实体的属性完全依赖于主关键字。所谓完全 依赖是指不能存在仅依赖主关键字一部分的属性。 第三范式:任何非主属性不依赖于其它非主属性。2.MySQL支持的存储引擎MySQL 支持多种存储引擎,比如 InnoDB,MyISAM,Memory,Archive 等等.在..原创 2021-10-21 13:09:46 · 535 阅读 · 0 评论 -
Arraylist与 LinkedList 异同点及 ArrayList 与 Vector 区别
误差和方差原创 2021-09-03 21:45:41 · 142 阅读 · 0 评论 -
关于hashCode()
一、什么是hashCode()二、为什么要有hashCode()?三、hashCode(),equals()两种方法是什么关系?四、为什么重写equals方法必须重写hashcode方法?一、什么是hashCode() hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在JDK的Object.java中,这就意味着Java中的任何类都包含有hashCod...原创 2021-10-20 09:22:22 · 621 阅读 · 0 评论 -
什么是反射
一、什么是反射?二、反射机制的优缺点?三、如何获取反射中的Class对象?四、Java反射的API一、什么是反射?反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。二、反射机制的优缺点?优点:能够运行时动态获取类的实例,提高灵活性;可与动态编译结合Class.forName('com.mysql.jdbc.Driver.cla..原创 2021-10-18 22:22:06 · 1437 阅读 · 0 评论 -
ThreadLocal
一、什么是ThreadLocalThreadLocal的应用场景有二、ThreadLocal的实现原理一、什么是ThreadLocalThreadLocal,即线程本地变量。如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作自己本地内存里面的变量,从而起到线程隔离的作用,避免了线程安全问题。//创建一个ThreadLocal变量static ThreadLocal<String> lo原创 2021-10-18 22:08:35 · 159 阅读 · 0 评论 -
CAS机制
一、CAS的概念二、CAS的缺陷一、CAS的概念CAS:全称 Compare and swap ,即比较并交换,它是一条 CPU 同步原语。是一种硬件对并发的支持,针对多处理器操作而设计的一种特殊指令,用于管理对共享数据的并发访问。 CAS 是一种无锁的非阻塞算法的实现。 CAS 包含了 3 个操作数: 需要读写的内存值 V 旧的预期值 A 要修改的更新值 B 当且仅当 V 的值等于 A 时,CAS 通过原子方式用新值 B 来更新 V 的 值,否则不会执行任何操作(他的功能是原创 2021-10-17 21:58:59 · 190 阅读 · 0 评论 -
在Linux上面部署项目的环境安装
linux安装环境的几个操作步骤~安装几个配套程序:1.JRE2.Tomcat3.MySQL1.jdkstep1:切换到root用户进行操作=》sustep2:安装jdkyum list | grep jdk选择java-1.8.0-openjdk-devel.x86_64,进行安装2.安装tomcat...原创 2021-10-17 15:08:43 · 5974 阅读 · 1 评论 -
二叉树的三种遍历方式
assad原创 2021-08-17 22:00:51 · 387 阅读 · 0 评论 -
什么是死锁?如何避免死锁?
深度学习总结原创 2021-08-23 22:22:56 · 297 阅读 · 0 评论 -
==和equals的区别
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器...原创 2021-10-14 21:53:32 · 103 阅读 · 0 评论 -
认识Linux权限
一、 认识 Linux 用户Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。1. 创建用户命令 useradd [用户名]功能 创建新的用户实例useradd test2. 配置密码命令 passwd [用户名]功能 设置或修改用户密码实例passwd test3. 切换用户命令:su [用户名].原创 2021-10-08 22:24:38 · 164 阅读 · 0 评论 -
各种锁的策略和锁优化
锁优化就是一些提高锁的效率的策略,下面以synchronized为例,来介绍优化操作1.锁消除:编译器 + JVM 会根据代码运行的情况智能判定当前的锁是否必要,如果不必要,就直接把锁的代码干掉2.偏向锁:第一个尝试加锁的线程,不会真的加锁,而是进入偏向锁状态(很轻量的标记),直到其他线程也来竞争这把锁,才会取消偏向锁状态,真正进行加锁1和2的优化思路相同:能不加锁就不加锁3.自旋锁:真的有多个线程竞争锁的时候,偏向锁状态被消除,此时线程使用自旋锁的方式来尝试进行获取锁自旋锁能保证让其他原创 2021-10-07 22:18:57 · 474 阅读 · 0 评论 -
HashMap、HashTable和ConcurrentHashMap之间的区别
1.HashMap 线程不安全,HashTable 和 ConcurrentHashMap 是线程安全的2.HashTable 简单粗暴的使用synchronized 来进行加锁,一大把锁控制所有,一个 HashTable 实例内部只有一把锁,这就意味着针对这个实例进行操作,都需要先申请锁,冲突概率比较大~~效率比较低。ConcurrentHashMap 内部有多把锁(每个桶有一把锁),大大降低了冲突概率~~提高了效率,ConcurrentHashMap提高效率的方式如下:使用多把锁降低冲突概.原创 2021-10-07 22:12:19 · 286 阅读 · 0 评论 -
垃圾回收器总结
目录一、Serial收集器(新生代收集器,串行GC)Serial收集器(新生代收集器,串行GC)二、ParNew收集器(新生代收集器,并行GC)三、ParallelScavenge收集器(新生代收集器,并行GC)四、SerialOld收集器(老年代收集器,串行GC)五、ParallelOld收集器六、CMS 老年代收集器七、G1 比较新的回收器最常使用到的垃圾回收器有如下几种:下面依次展开介绍。一、Serial收集器(新生代收集器,串行GC)Se...原创 2021-10-06 22:51:17 · 168 阅读 · 0 评论 -
关于Bean的作用域
目录一、singleton二、prototype三、request四、session五、application六、websocketSpring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域。Spring有6个作用域,最后四种是基于Spring WebMVC生效:一、singleton官方说明:(Default)ScopesasinglebeandefinitiontoasingleobjectinstanceforeachSp...原创 2021-10-06 22:27:19 · 205 阅读 · 0 评论 -
方法的递归
一、递归的定义1.递归的概念一个方法在执行过程中调用自身, 就称为 "递归".递归相当于数学上的 "数学归纳法", 有一个起始条件, 然后有一个递推公式. 例如, 我们求 N!起始条件: N= 1 的时候, N! 为 1. 这个起始条件相当于递归的结束条件. 递归公式: 求 N!, 直接不好求, 可以把问题转换成 N!=> N * (N-1)!...原创 2021-10-05 22:13:44 · 382 阅读 · 0 评论 -
方法定义和使用
方法:功能* public static 返回值 方法名(形式参数列表){* 方法体;* }**public static :因为当前所有的方法写完之后,会在main方法中调用,因为main方法是public static的* 形参是实参的一份拷贝 方法体就是方法的具体实现...原创 2021-10-05 21:01:48 · 509 阅读 · 0 评论 -
类加载的过程和双亲委派模型
一、类加载类加载的流程:1.加载:根据类名找到文件,读取文件,解析架构,把内容放到内存中,并构造出类的对象2.链接:如果该类依赖了一些其他类,链接过程就是把依赖内容进行引入3.初始化:初始化静态成员,并执行代码块二、什么时候会触发某个类的加载?a)构造该类的实例b)调用该类的静态属性或者方法c)使用子类时会触发父类的加载举例:分析如下代码的执行顺序。package interview;/** * @program: java16_blogdemo * .原创 2021-10-05 18:34:50 · 260 阅读 · 0 评论 -
垃圾回收算法
目录一、GC 是什么?二、GC 要回收哪部分内存?三、回收的基本单位四、回收对象的基本思路【重点】(1)标记(2)回收五、什么是分代回收?六、一个对象的一生七、一些专业术语一、GC 是什么?内存是很宝贵的资源,为了更好的回收内存,得保证内存在用的时候能被申请,不用的时候被释放。释放内存比较麻烦,很容易遗漏或者释放时机过早,为了避免这些问题,引入了垃圾回收算法,能够很大程度上的避免内存泄露。二、GC 要回收哪部分内存?堆 主要回收的地方方法区...原创 2021-10-04 21:56:07 · 296 阅读 · 0 评论 -
JVM总结
一、JVM是什么?JVM 是一个虚拟机,相当于一个翻译软件,能够屏蔽掉我们对于操作系统和硬件设备的感知,从而实现“跨平台”二、JVM的组成1.类加载器 (和类加载相关)2.执行引擎(解释执行字节码)3.动态内存管理器(和垃圾回收相关)三、JVM的内存划分JVM的内存来自于操作系统,JVM启动之后就会从操作系统申请一大块内存,再针对这个内存划分出一些区域。划分成的区域如下:1.堆(运行时常量池,在1.8中也是堆)构造的对象存放在堆中2.方法区加载好的类静态成员3.栈(JVM原创 2021-10-04 21:17:48 · 123 阅读 · 0 评论 -
Cookie和Session
1. Cookie 和 Session1.1 用户信息Http 是一个无状态协议, 就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的。这种无状态的的好处是快速。坏处是需要进行用户状态保持的场景时[比如,登陆状态下进行页面跳转,或者用户信息多页面共享等场景],必须使用一些方式或者手段比如: session 和cookie1.2 Cookie如上所述,Http 是一个无状态的协议,但是访问有些资源的时候往往需要经过认证的账户才能访问,而且要一直保持在线状态,所以,cookie是一种在原创 2021-10-02 22:34:36 · 145 阅读 · 0 评论 -
Java异常体系及自定义异常类
一、Java异常体系Java 内置了丰富的异常体系, 用来表示不同情况下的异常. 下图表示 Java 内置的异常类之间的继承关系:顶层类派生出两个重要的子类,Error和Exception. 其中Error指的是Java运行时内部错误和资源耗尽错误.应用程序不抛出此类异常.这种内部错误一旦出现,除了告知用户并使程序终止之外, 再无能无力. 这种情况很少出现. Exception是异常类的父类. 其中 Exception 有一个子类称为 RuntimeException, 这...原创 2021-09-28 23:06:45 · 355 阅读 · 0 评论 -
认识Java异常
1.异常的定义所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制.关键字 “运行时”有些错误是这样的, 例如将 System.out.println 拼写错了, 写成system.out.println. 此时编译过程中就会出错, 这是 “编译期” 出错.而运行时指的是程序已经编译通过得到 class 文件了, 再由 JVM 执行过程中出现的错误. 异常的种类有很多, 不同种类的异常具有不同的含义, 也有不同的处理方式.2.异常的基本用法捕获异常基本语法try{有可能出现异常的语原创 2021-09-27 23:08:33 · 101 阅读 · 0 评论 -
顺序表【使用数组实现单链表】
import java.util.Arrays;public class MyArrayList { public int[] elem;//数组 public int usedSize;//有效数据的个数 public static final int intCapacity = 10;//初始容量 //构造方法 public MyArrayList(){ this.elem = new int[intCapacity]; thi.原创 2021-08-14 10:27:39 · 274 阅读 · 0 评论 -
排序算法及对应的时间复杂度
1.插入排序 public static void insertSort(int[] arr){ for(int i = 1; i < arr.length; i++){ int temp = arr[i]; int j = i-1; for(; j >=0; j--){ if(arr[j] > temp){ arr[j.原创 2021-08-13 21:37:31 · 2189 阅读 · 0 评论 -
使用cmd命令运行java程序
1.打开powershell窗口win+r输入cmd2. 切换到存放java代码的目录我现在要运行H盘practise目录下的A.java文件3.编译【javac 类名.java】进而会生成对应的.class文件4.运行【java 类名】public class A{ public static void main(String[] args) { int num = 10; String str1 = String.value..原创 2021-08-13 16:28:33 · 2532 阅读 · 0 评论 -
Excel表序列号
给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28示例 1:输入: "ZY"输出: 701思路:由题目描述知:此问题相当于求解26进制A=》1*26^0AA=>1*26^1 + 1*26^0;ZY=>26*26^1+25*26^0;......因为...原创 2021-07-29 16:45:04 · 337 阅读 · 0 评论 -
JDBC编程
1.JDBC常用接口和类JDBC使用步骤总结:1.获取DataSource连接对象 2. 创建数据库连接Connection 3. 使用PrepareStatement或者Statement命令拼装具体的SQL语句 4. 使用操作命令来执行SQL // 查询操作preparedStatement.executeQuery();// 新增、修改、删除操作preparedStatement.executeUpdate();...原创 2021-07-26 20:26:16 · 326 阅读 · 0 评论 -
罗马数字转整数
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。示例...原创 2021-07-25 21:45:17 · 92 阅读 · 1 评论 -
只出现一次的数字 (HashMap的应用)
给你一个整数数组nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99思路:使用hashMap,以键值对的方式,记录下每个数字出现的次数,最后遍历map,找到值为1的键,输出即可。特别注意:map的遍历方式!!!for(Map.Entry<Integer,Integer> en.原创 2021-07-25 20:37:42 · 369 阅读 · 0 评论 -
数组中只出现一次的两个数字并且按照大小顺序返回
数组中只出现一次的两个数字描述一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。示例1输入:[1,4,1,6]返回值:[4,6]package com.bite;/** * @program: bite * @description * @author: wenwen * @create: 2021-07-24 21:35 **/import java.util.*;import java.util原创 2021-07-24 22:20:58 · 146 阅读 · 0 评论 -
左旋转字符串
左旋转字符串描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列 S,请你把其循环左移 K 位后的序列输出(保证 K 小于等于 S 的长度)。例如,字符序列S=”abcXYZdef”,要求输出循环左移 3 位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!示例1输入:"abcXYZdef",3复制返回值:"XYZdefabc"思路1:使用字符串截取(最简单)class Solut原创 2021-07-24 22:13:32 · 144 阅读 · 0 评论 -
Java对象的比较
1.基本类型的比较在Java中,基本类型的对象可以直接比较大小。public class TestCompare {public static void main(String[] args) {int a = 10;int b = 20;System.out.println(a > b);System.out.println(a < b);System.out.println(a == b);char c1 = 'A';char c2 = 'B';System..原创 2021-07-22 22:20:16 · 173 阅读 · 0 评论 -
Map和List的常用方法
Map的常用方法 方法名 说明 V get(Object k) 查找指定元素的v V getOrDefault(Object k,V defaultValue) 查找k对应的v没有用默认值代替 V put(k key,V value) 将k-v放入Map boolean ContainsValue(Object value) .原创 2021-07-22 22:04:26 · 678 阅读 · 0 评论 -
第一个只出现一次的字符
思路:这个题目求的是只出现一次的字符的位置最简单的解法,如果该字符只出现一次,那么从前开始查找和从后开始查找,找到的下标都应该是同一个。//解法一:public class Solution { public int FirstNotRepeatingChar(String str) { for (int i = 0; i < str.length(); i++) { if (str.indexOf(str.charAt(i)...原创 2021-07-22 20:04:14 · 146 阅读 · 0 评论