- 博客(58)
- 收藏
- 关注
原创 前端知识点(面试可看) —— JS
马上就要毕业啦,没有参加2023年的秋招,准备在最近开始找全职或者实习工作,然后也马上过年了,总结和理一下自己的知识要点,参加2024年的春招。
2024-01-04 11:18:30
1354
原创 前端知识点(面试可看)—— CSS篇
马上就要毕业啦,没有参加2023年的秋招,准备在最近开始找全职或者实习工作,然后也马上过年了,总结和理一下自己的知识要点,参加2024年的春招。
2024-01-03 20:26:13
1009
原创 前端知识点(面试可看) —— HTML
马上就要毕业啦,没有参加2023年的秋招,准备在最近开始找全职或者实习工作,然后也马上过年了,总结和理一下自己的知识要点,参加2024年的春招。
2024-01-03 14:09:25
1535
原创 Docker 入门 ------容器互通以及Dockerfile
本章节主要介绍了Docker容器如何进行互通,以及容器互通时需要注意的事项以及细节,然后详细的介绍了Dockerfile各个关键字的含义,以及如何使用,到这里Docker入门的章节就结束了,后面会有一个Docker实战篇。
2023-12-30 13:53:27
1631
原创 Docker 入门 ------ 基本命令
本章主要描述了Docker的基本命令,包括镜像:创建、删除、标签等,并且如何从远程仓库拉取下来,容器的运行如何进入容器等。
2023-12-29 23:21:25
2491
原创 Docker入门 ------ 概念和安装
本章主要讲解了Docker的背景、使用Docker的优势、和虚拟机的差别、核心概念是什么和如何在Centos中如何安装Docker。在下一章中我们将主要学习Docker中的命令。
2023-12-28 00:35:44
1338
1
原创 MEIS —— 前端部分基本配置
这篇文章我们随着上一篇文章继续往下叙述,主要是将element和windicss等开发配置进项目中,以及基本的一些页面和组件给他完成。
2023-09-29 16:11:45
1562
原创 记录一个教学的交互式系统的开发 —— 环境搭建
最近临近毕业,也到了毕业设计和找工作的时间了,所以就想着做一个开源项目,之前上课也不是很满意学校的教学系统,也就是,想着做一个可以记录学生学习记录和教师教学记录的平台,支持网页、桌面应用和小程序的项目。这个项目呢打算使用的技术栈:前端:vue3.0 + typescript + element plus + electron后端:golang + gin + gorm 项目名:Mango Education Interactive Service —— MEIS技术栈会有出入后面也会持续更新的。
2023-09-28 15:40:58
1656
原创 uni-app v-for循环 click无法传参解决方案
场景:循环后端数据数据控制子级是否显示<view :class="['inspect-item-wrap', !item.show ? 'collapse': '']" v-for="item in list_arr.attribute_values" :key="item.id"> <view class="item-show-wrap" @click="collapse(item)"> <text class="item-title">{{item.name}
2021-04-22 16:35:24
14140
6
原创 JUC 并发编程学习(4)
1. JMM请你谈谈对Volatile的理解Volatile是Java虚拟机提供轻量级的同步机制。保证可见性不保证原子性禁止指令重排什么是JMMJVM:Java内存模型,不存在的东西,他是一个概念、约定。关于JMM的一些同步的约定:线程解锁前,必须把共享变量立刻刷回主存。线程枷锁前,必须读取主存中的最新值到工作内存中!加锁和解锁是同一把锁。线程:工作内存、主内存八种操作:内存交互操作 内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分
2020-12-08 15:38:08
1408
原创 JUC 并发编程学习(3)
1. 四大函数式接口(必须掌握)新时代程序员:lambda表达式、函数式接口、链式编程、Stream流式计算1.1 函数式接口@FunctionalInterfacepublic interface Runnable { /** * When an object implementing interface <code>Runnable</code> is used * to create a thread, starting the threa
2020-12-04 18:49:24
214
1
原创 JUC 并发编程学习(2)
1. ArrayList 多线程不安全在多条线程下,对同一个ArrayList执行add方法时,可能会报java.util.ConcurrentModificationException,即为并发修改时错误。解决方法有3种:List list = new Vector<>();List list = Collections.synchronizedList(new ArrayList<>());List list = new CopyOnWriteArrayList<
2020-12-03 18:07:51
162
原创 JUC 并发编程学习(1)
1. 什么是JUCjava.util 工具包、包、分类业务:普通线程代码 ThreadRunnable 没有返回值、效率相比于Callable相对较低!2. 线程和进程线程、进程,如果不能使用一句话说出来的的基数,不扎实!进程:一个程序,QQ.exe Music.exe 程序的集合 ;一个进程往往可以包含多个线程,至少包含一个!Java默认有两个线程:main线程 和 GC线程。线程: 开了一个进程 Typora,写字,自动保存(线程负责)对于Java而言:Thread、Run
2020-12-01 18:38:06
139
原创 Java 注解和反射
1. 注解(Annotation)一、作用可以被其他程序(比如:编译器等)读写不是程序本身,可以对程序做出解释。(这一点和注释没有区别)二、格式注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked).三、例子public class Demo01 extends Object{ // @Override 重写的注解 @Override public String toString(
2020-11-20 18:30:42
120
原创 Java 多线程学习(线程池和总结)
1. 线程池1.1 背景经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。1.2 思路提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的交通工具。1.3 好处提高响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保持多长
2020-11-19 17:23:06
103
原创 Java 多线程学习(线程通信——消费者和生产者)
线程通信假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费。如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,知道仓库中的产品被消费者取走为止。如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,知道仓库中再次放入产品为止。这是一个线程同步问题,生产者和消费者共享一个资源,并且生产者和消费者之间相互依赖,互为条件在生产者消费者问题中,仅有synchronized是不够的synchronized 可阻止并发更新同一个共享资
2020-11-19 16:36:01
225
原创 Java 多线程学习(Lock锁)
Lock锁从JDK5.0开始,Java提供了更强大的线程同步机制——通过显示定义同步锁对象来实现同步。同步锁使用Lock对象充当。java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象。ReentrantLock类实现了Lock,他拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是Reentran
2020-11-19 15:00:42
122
原创 Java 多线程(死锁)
死锁多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有两个以上对象的锁时,就可能会发生“死锁”的问题。死锁可能发生的情况:package com.mango.deadlock;// 死锁:多个线程互相抱着对方需要的资源,然后形成僵持。public class DealLock { public static void main(String[] args) { Make
2020-11-19 14:40:49
107
原创 Java 三种不安全线程及解决方案
1. 三种不安全线程1.1 List 集合package com.mango.syn;import java.util.ArrayList;import java.util.List;// 线程不安全的集合public class UnsafeList { public static void main(String[] args) { List<String> list = new ArrayList<>(); for (
2020-11-19 12:22:32
234
原创 Java 线程同步
Java 线程同步处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象。这时候我们就需要线程同步。线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入synchronized 锁机制,当一个线程获得对象的排它锁,独占资源,其他线程必须等待,使用后释放锁即可。存在以下问题:一
2020-11-18 18:51:52
95
原创 Java 线程状态
Java 线程状态1. 停止线程不推荐使用JDK提供的stop()、destory()方法。【已废弃】推荐线程自己停止下来建议使用一个标志位进行终止变量当flag=false,则终止线程运行。package com.mango.demo02;// 测试stop// 1. 建议线程正常停止 --> 利用次数,不建议死循环。// 2. 建议使用标志位 --> 设置一个标志位// 3. 不要使用stop() 和 destroy() 等过时或者JDK不建议使用的方法publi
2020-11-18 17:09:15
94
原创 Java Lambda表达式
为什么要使用Lambda表达式可以让你的代码看起来很简洁避免匿名内部类定义过多去掉一堆没有意义的代码,只留下核心的逻辑(params) -> expression[表达式](params) -> statement[语句](params) -> {statements}函数式接口理解Functional Interface(函数式接口)是学习Java8 lamdba表达式的关键所在。函数式接口的定义:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
2020-11-18 15:27:51
83
原创 Java 静态代理
代码:public class StaticProxy { public static void main(String[] args) { new Thread(()-> System.out.println("我爱你")).start(); WeddingCompany weddingCompany = new WeddingCompany(new You()); weddingCompany.HappyMarry(); }
2020-11-18 14:42:18
78
原创 Java 多线程学习(Callable)
使用可以定义返回类型可以有返回值package com.mango.demo01;// 线程创建方式三:实现callable接口import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;import java.net.URL;import java.util.concurrent.*;/** * callback的好处 */public class Te
2020-11-18 14:22:12
110
原创 Java 多线程学习(Runnable)
使用package com.mango.demo01;// 创建线程方式2:实现runnable接口,重写run方法,执行线程需要丢去runnable接口实现类,调用start方法public class TestThread03 implements Runnable{ @Override public void run() { // run 方法线程体 for (int i = 0; i < 20; i++) { Sy
2020-11-18 12:20:53
127
原创 Java 多线程学习Thread
使用自定义线程类继承Thread类重写run()方法,编写线程执行体。创建线程对象,调用start()方法启动线程。package com.mango.demo01;// 创建线程方式1:继承Thread类,重写run()方法,调用start开启线程// public class TestThread01 extends Thread{ @Override public void run() { // run 方法线程体 for (int
2020-11-18 11:43:49
81
原创 Java Collections工具类
package com.collectionUtils;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;/** * 演示Collections工具类的使用 */public class Demo01 { public static void main(String[] args) { List<Int
2020-11-09 17:12:54
106
原创 Java Map
Map父接口特点:存储一对数据,无序、无下标,键值不可以重复,值可重复方法:(1) put(key,value)(2) get(key)(3) keySet*(4) Collection values(5) entrySet*Set:public class Demo01 { public static void main(String[] args) { // 创建Map Map<String, String> m1 = new H.
2020-11-09 15:59:07
138
原创 Java 集合中的Set
Set1. 特点无序、无下标、元素不可重复。2. 方法全部继承自Collection中的方法。3. 实现类3.1 HashSet【重点】给予HashCode实现元素不重复当存入元素的哈希吗相同时,会调用equals进行确认,如结果为true,则拒绝后者存入3.2给予排序顺序实现元素不重复4. Set 接口使用package com.setDemo;import java.util.HashSet;import java.util.Iterator;import ja
2020-11-09 12:30:17
110
原创 Java 泛型
泛型1. 概念语法1. Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递。2. 常见形式有泛型类、泛型接口、泛型方法。3. 语法:<T,...> T称为占位符,表示一种引用类型。优点:1. 提高代码的重用性2. 防止类型转换异常,提高代码安全性。2. 泛型类泛型之泛型类语法:类名 < T >T 是类型占位符,表示一种引用类型,可以写多个,可以使用逗号隔开泛型可以声明变量 做方法的形参 可以做方法的返回值 但是不可以
2020-11-06 15:15:47
81
原创 Java LinkedList【重点】
package com.collectionDemo;import java.util.Iterator;import java.util.LinkedList;import java.util.ListIterator;/** * LinkedList 集合使用 * 存储结构:双向链表 * */public class LinkedListDemo01 { public static void main(String[] args) { // 创建集合
2020-11-06 10:57:13
80
原创 Java ArrayList
package com.collectionDemo;import java.util.ArrayList;import java.util.Iterator;import java.util.ListIterator;/** * ArrayList的使用 * 存储结构:数组、查找遍历速度快、增删慢 * 源码分析: * (1) 默认容量大小 DEFAULT_CAPACITY = 10 * 注意:如果没有向集合中添加任何元素,容量为0 * (2) elementData 用来
2020-11-05 14:41:00
69
原创 Java collection之List
package com.collectionDemo;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;/** * List的特点: * (1) 有序、有下标、元素可以重复。 * (2) 方法 * 2.1 add(int index,Object o) * 2.2 addAll(int index, Colle
2020-11-05 12:06:26
109
原创 Java System类
Java 常用类之系统类 (System)System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。package com.timer.systemObjDemo;import java.util.Arrays;public class SystemObj { public static void main(String[] args) { // arraycopy 实现数组复制 // 第一个参数src 原数组 // 第二
2020-11-04 14:17:48
112
原创 Java double和BigDecimal
Java double和BigDecimal1. doublepackage com.bigDecimalDemo.Demo01;public class Demo01 { public static void main(String[] args) { double d1 = 1.0; double d2 = 0.9; System.out.println(d1-d2); // 面试题 double res
2020-11-03 18:58:34
760
原创 Java StringBuffer 和 StringBuilder
Java StringBuffer 和 StringBuilderStringBuilder使用方法和StringBuffer一样,new之后接可以使用了。package com.stringDemo.Demo01;/** * StringBuffer 和 StringBuilder 的使用 * 和String的区别 * (1) 效率比String高 * (2) 比String节省内存 * */public class Demo02 { public static void m
2020-11-03 14:31:59
139
原创 Java String类
Java String类字符串是常量,创建之后不可改变。字符串字面值存储在字符串池中,可以共享。关于字符串常量赋值package com.stringDemo.Demo01;public class Demo01 { public static void main(String[] args) { String name = "Mango"; name = "战三"; }}...
2020-11-03 12:09:33
80
原创 Java 面试题之Integer 缓冲区
Integer 缓冲区package com.packingClass.Demo01;public class Deme02 { public static void main(String[] args) { // 面试题 Integer integer1 =new Integer(100); Integer integer2 =new Integer(100); System.out.println(integer1 ==
2020-11-02 16:37:57
234
原创 Java 包装类
Java包装类什么是包装类?基本数据类型所对应的引用数据类型。Object可统一所有数据,包装类的默认值是null。类型转换与装修、拆箱8中包装类提供不同类型的转换方式。(自动)拆箱和装箱案例:package com.packingClass.Demo01;public class Demo01 { public static void main(String[] args) { // 类型转换: // 装箱:基本类型转成引用类型
2020-11-02 16:14:31
817
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人