- 博客(47)
- 收藏
- 关注
原创 VLOOKUP 使用变量
VLOOKUP 使用范例 =VLOOKUP($B4,'sheetName'!$L2:$T12"),2,FALSE) $B4 为对比值, 你想和作用域内对比的值 SheetName!为sheet的名字 需要用' ' 括起来 $L2:$T12 真实的作用域 L2位置到T12的位置所在的区域 2 为column 有就是你需要的第几列的数据 false 是准确查询 true 为模糊查询 动态的(引入变量) =V.
2021-07-13 01:16:42
2035
原创 记录一些拿来可用的一些格式和工具类
Maven防止无法导出资源文件在pom.xml 中 一般是用来解决Mybatis 的xml 无法导出的问题<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.prop...
2021-07-11 18:36:21
113
原创 Cookies 和 Session
Cookies 和 Sessioncookies 客户端技术 session 服务器技术,可以保存用户对话, 把信息或者数据放在session中 常见: 网站登陆后,下次就不要再次登录Cookies 从请求中拿到cookie信息 服务器响应给客户端cookie 一般会保存再本地的用户目录下appdata; 细节问题 一个cookie 只能存在一个信息 一个web站点给浏览器发送多个cookie 最多存20个
2021-07-03 21:28:31
104
原创 Servlet
Servlet 开发动态web的一门技术 API 提供接口 servlet 二个步骤开发servlet程序 编写一个类实现servlet接口 把开发号的java类部署到web服务器中 实现了servlet接口的java程序叫做 servletMaven Servlet 和 jsp 依赖<dependencies> <!-- https://mvnrepository.com/artifact/javax.serv...
2021-07-03 21:27:47
174
原创 Maven
Maven为啥用Maven 在web开发中需要很多的jar 包手动很不方便 Maven可以自动帮我导入和配置这个jar包 只是一个工具 Maven 项目架构管理的工具目前就时简单的导包核心思想:约定大于配置 有约束,不要去违反 maven 会规定如何去编写我们的java代码 下载Maven – Download Apache Maven在环境变量中 M2_HOME maven 目录下的bin目录 MA
2021-07-01 15:19:24
84
原创 HTTP(Hypertext Transfer Protocol)
HTTP超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。 文本:html,字符串..... 超文本:图片,音乐,视频,定位,地图 http:80端口 https:是 安全的 443 端口 两个时代 http1.0 http/1.0:客户端可以在web服务器连接后,只能获得一个web资源,之后断开连接 http2.0 http/1.0:客户
2021-07-01 15:13:26
266
原创 Tomcat
TomcatApache Tomcat® - Welcome!开启:在bin目录双击 startup打开服务 并访问http://localhost:8080/ 来检测Tomcat是否成功看到此图片成功出现的问题:闪退:没有配置JAVA_HOME乱码:配置文件中问题默认端口号 8080默认在主机名 localhost 127.0.1发布一个web网站 将自己的网站,放到服务器(Tomcat)中指定的web应用文件夹下webapps 下 就可以访问
2021-07-01 15:12:24
72
原创 Web 基本概念
概念 静态web html css 所有人看的的数据不会发生变化 无法连接数据库 无法做到数据的持久性 动态web 提供给每个人的信息不相同 几乎所有的网站只要有账户的都不一样 servlet/jsp, ASP , PHP 可以连接数据库 做到数据持久化 一旦出现错误就要重新发布网页 就是宕机维护 在java 中,同台web资源开发的技术统称为javaweb.
2021-07-01 15:11:08
81
原创 数据库 mysql
数据库基本语句所有的sql语句需要分号结尾 mysql -u root -p7758521 --连接数据库 flush privileges; --刷新权限 show database; --查看所有数据库 use table(表名); --切换数据库 show tables; -- 查看数据库中的所有表 describe table; --显示数据库中所有的信息 create database databas...
2021-06-29 22:38:36
336
原创 java 反射
反射优点: 可以实现动态创建对象和编译 灵活度高缺点: 慢于直接执行相同的操作public class Test4 { public static void main(String[] args) throws ClassNotFoundException { Class c1= Class.forName("Reflection.User"); System.out.println(c1); Class c2= Class.forName...
2021-06-26 19:13:14
71
原创 java 注解
注解JDK 5.0 Annotation注解可以被其他程序读取内置注解@Deprecated //不推荐使用 已经被淘汰 或者又更好的方法@Override //重写方法@SuppressWarnings() //镇压警告 有参数元注解复制解释其他注解的注解 meta-annotation@Target@Retention@Documented@Inheritedimport java.lang.annotation.*;@MyAnnotationp
2021-06-25 18:44:05
84
原创 java 使用各种锁
各种的锁公平锁不能插队先来后到//来自源码public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync();}非公平锁可以插队(默认非公平保证效率)//来自源码public ReentrantLock() { sync = new NonfairSync();}可重入锁通俗的就是套娃锁 锁里面还又锁打开一个大门就可以打开里面所有房间的门...
2021-06-25 18:43:32
88
原创 java 单例模式
单例模式饿汉式public class Hungry { private int[] list1 = new int[100000000]; private int[] list2 = new int[100000000]; private int[] list3 = new int[100000000]; private int[] list4 = new int[100000000]; private Hungry(){ } pr...
2021-06-24 20:49:23
71
原创 java JMM 3种性质
JMMVolatile 式Java 虚拟机的轻量级的同步机制 保证可见性 不保证原子性 禁止指令的重排 JMM 是java 的内存模型 是不存在的东西是一个concept 和约定 线程解锁前 立刻刷回主要内存 线程加锁前 主内存进入工作内存 8种操作保证可见性不使用volatile 出现的问题 mian线程种 num=1 不影响已经开启的线程 工作内存 没有一直验证 住内存中的 数据变化 线程不可以见主内存的变化private
2021-06-24 17:58:23
84
原创 java 异步同调
无返回值 public static void main(String[] args) throws ExecutionException, InterruptedException { //没有返回值的异步 CompletableFuture completableFuture = new CompletableFuture<>().runAsync(()->{ System.out.println(Thread.cu...
2021-06-24 17:57:13
166
原创 Java ForkJoin
ForkJoin1.8 之后大数据 Map reduce 把大任务拆分成小任务如何使用ForkJoin 在大量数据时使用 forkjoinpool 来执行 forjoinPool.execute(ForkJoinTask task) 计算类要继承 ForkJoinTask import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import
2021-06-24 17:55:40
128
原创 Java Stream流式计算
Stream 流式计算大数据的 存储和计算Lamda表达式 链式编程 函数接口 Stream流计算import java.util.Arrays;import java.util.List;import java.util.Locale;public class Functional { public static void main(String[] args) { User u1 = new User(1,"a",21); User u...
2021-06-24 17:54:34
94
原创 Java四种函数式接口
函数式接口只有一个方法的接口只要是函数式接口就可以用lambda表达式1. Function interface 工具类接口public static void main(String[] args) { //function interface Function function=new Function(){ @Override public String apply(String s) { return s; ...
2021-06-24 09:45:40
123
原创 JUC理论和代码
JUC线程状态 NEW RUNNABLE BLOCKED WATTING TIMED_WAITING TERMINATED wait 和 sleep 区别1. 不同的类wait 来自 Objectsleep 来自 Thread2. 锁的释放wait 放锁sleep 不放3. 使用范围wait 同步代码块中sleep 可以在任何范围4. 是否需要捕获异常wait 不需要捕获异常sleep 需要捕获异
2021-06-23 20:24:54
100
原创 Java线程池
线程池可以使用线程池来管理线程import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class TestPool { public static void main(String[] args) { //线程池 ExecutorService service = Executors.newFixedThreadPool(10);...
2021-06-01 17:30:12
65
原创 Java线程合作通讯
线程合作线程通信wait(); 线程等待 放锁notify(); 唤醒一个处于等待状态的线程解决方式: 生产着 把东西放在缓冲区 消费者从缓冲区拿东西 生产者和消费着之间不干涉 //利用缓存区public class TestPC { public static void main(String[] args) { Container container = new Container(); new Producer...
2021-06-01 17:24:18
72
原创 Java 锁Lock
Lock 锁时重入锁 用ReetrantLock 类来使用先创建一个 ReentrantLock 类创建一个锁解锁所 来完成锁住 和释放一块 代码块 相比于synchronized 使用的效率要更高import java.util.concurrent.locks.ReentrantLock;public class TestLock { public static void main(String[] args) { TestLock2 testLock...
2021-06-01 13:43:52
66
原创 CopyOnWrite
CopyOnWriteArrayListjava juc 包下的一个已经写好的Arraylist线程安全的方法 不需要自己在进行加锁import java.util.concurrent.CopyOnWriteArrayList;public class TestJuc { public static void main(String[] args) { CopyOnWriteArrayList<String> list = new CopyOnWrite...
2021-06-01 11:25:50
78
原创 Java线程同步 不安全的例子加锁
线程同步一个多先别多个线程同时操作队列 和 锁 来解决安全性synchronized 一个线程所占有独立自由其他线程必须等待存在问题: 一个线程有锁为导致其他需要此锁的线程挂起 多线程竞争下 加锁 释放锁会导致比较多的上下文切换和调度延时引起性能问题 一个低优先级的线程拿到锁高优先级只能挂起会导致优先级倒置,引起性能问题 锁的对象要是变化的量 增删改的对象线程不安全例子 ABC买票 有人拿到一样的票或者拿到负数public class...
2021-06-01 11:15:06
152
原创 Java线程不安全例子
线程同步一个多先别多个线程同时操作队列 和 锁 来解决安全性synchronized 一个线程所占有独立自由其他线程必须等待存在问题: 一个线程有锁为导致其他需要此锁的线程挂起 多线程竞争下 加锁 释放锁会导致比较多的上下文切换和调度延时引起性能问题 一个低优先级的线程拿到锁高优先级只能挂起会导致优先级倒置,引起性能问题 线程不安全例子 ABC买票 有人拿到一样的票或者拿到负数public class UnafeBuyTicket{ pub...
2021-06-01 11:02:04
168
原创 Java守护线程
守护线程 (daemon) 线程风味用户线程和守护线程(key) 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 用户线程停止之后 守护线程就会自动停止public class TestDaemon { public static void main(String[] args) { God god = new God(); You you= new You(); Thread thread = ...
2021-06-01 10:06:50
69
原创 Java线程优先级
public class TestPriority{ public static void main(String[] args) { System.out.println(Thread.currentThread().getName() +"->"+Thread.currentThread().getPriority()); MyPriority myPriority = new MyPriority(); Thread t1 = new T...
2021-06-01 09:53:08
76
原创 Java 线程状态
线程状态 NEW 未启动的的线程属于次此状态 RUNNABLE 线程处于运行状态 BLOCKED 阻塞状态 WAITTING 等待状态 TIMED WAITTING 等待另一个线程动作到达指定时间 TERMINATED 线程死亡 线程死亡无法重写看开始Thread.start(); 不能使用两次 线程一但死亡不可以重写开启线程public class TestState { public static void main(...
2021-06-01 09:37:59
64
原创 Java线程的强制执行
线程强制执行插队 等待线程完成后 才继续执行别的线程Thread.join();public class TreadJoin implements Runnable { @Override public void run() { for (int i = 0; i < 1000; i++) { System.out.println("vip come " + i); } } public st...
2021-05-31 21:03:34
119
原创 Java线程礼让
线程礼让礼让不不一定成功 还是看cpuThread.yield();public class ThreadYield { public static void main(String[] args) { MyYield myYield1 = new MyYield(); MyYield myYield2 = new MyYield(); new Thread(myYield1,"1").start(); new Threa...
2021-05-31 21:02:36
82
原创 Java线程停止和休眠
线程停止使用一个标志位来停止线程//建议使用标志性 设置一个标志位public class Thread4 implements Runnable{ private boolean flag =true; @Override public void run() { int i = 0; while(flag){ System.out.println("run Thread "+ i++); }...
2021-05-31 21:01:44
136
原创 Lambda 入门简易code
Lambda 避免匿名内部类定义过多 可以让你的代码看起来简洁 去掉了一堆没有意义的代码但留下了核心 函数式接口 任何接口 只包含唯一一个抽象类方法 对应函数接口就可以使用lambda表达式了 就简单的使用public class TryLambda { public static void main(String[] args) { Calculator calculator = (a,b)-> { ...
2021-05-31 18:27:54
152
原创 Java静态代理
静态代理 实现同一个接口 代理要代理真实角色 好处是代理可以做真多代理对象做不了的事情 真实对象可以专注自己的事情 public class StaticProxy { public static void main(String[] args) { new Thread(()-> System.out.println("爱你")).start(); //lamda 表达式 WeddingCompany company...
2021-05-31 17:53:02
91
原创 多线程 Tread Runnable Callable
多线程线程的创建Thread Runnable Callable继承Thread 类实现Runnable接口Thread 类将一个类继承Thread类 然后子类重写run() 方法, 然后可以启动子类的实例 3 步走 自定义线程继承Thread类 public class TestThread1 extends Thread{ } 重写run()方法,编写线程执行体 public class TestThread1 extends Thread{..
2021-05-31 17:16:47
106
原创 面向对象基本了解
面向对象概念OOP (Object-oriented programming)面向对象是一种思维模式:物以类聚 人以群分对于复杂事务的总体描述 在通过细节来构成总体 例子: 假设房子是一个对象 里面要有家具 电器 水路 电路。 假设家具是对象 里面要有 床 柜子 沙发。 可以一层一层的拆分以类的方式组织代码,以对象的组织封装代码三大特性: 封装 继承 多态 封装禁止直接访问一个对象中数据的时间表现 改露的接口露 改藏的数据藏好...
2021-05-31 10:42:17
85
原创 封装 继承 多态
封装禁止直接访问一个对象中数据的时间表现 改露的接口露 改藏的数据藏好追求: 高内聚 低耦合封装可以防止给的数据不合法进行提前判断public class Student { //属性 //priavte 关键字 让属性私有 private String name; //外面的类无法控制或者获得此属性 private int age; //get set 方法来获得和操作 public String getName() {//获取名字...
2021-05-30 17:50:59
88
原创 构造器(Constructor)
默认的构造器为空的构造器 一但自己定义构造器 默认构造器就会消失 如果使用需要自己手动加上默认构造器public class Person { //构造器必须与类名相同并且没有返回值 public Person(){ //如果没有自定义构造器 默认构造器会默认存在 }}public class Person { String name; //构造器必须与类名相同并且没有返回值 原本默认的构造器消失 public Person(){ ...
2021-05-30 15:48:38
341
原创 Java数组
数组数组概念一个同意类型的数据有序的集合{1,2,3,4,5} 每个数字都有自己的编号可以找到定义100个int 类型 非常的不方便。 所以使用数组也更好管理特点: 大小不可变 元素同一 数据类型可以是任何类型 数组是一个对象 数组声明dataType [] name; //声明dataType name = new dataType[number]; //定义并声明可以存放number个数字name[index]; //选中数组.
2021-05-30 12:31:45
86
原创 Java稀疏数组
稀疏数组在数组有大量的 无效数值是可以使用稀疏数组来减少数据的存储运行下面代码看注释 public static void main(String[] args) { //稀疏数组 int [][] array1 = new int[5][5]; array1[1][3]= 1; array1[2][4]=2; //双层增强for循环 for (int[] a: array1) { //打印原...
2021-05-30 12:31:02
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人