Mybatis的SqlSession把Java Map作为参数
摘要:Mybatis的以下方法,可以有一个参数,也可以有两个参数。 如果有两个参数,则第一个参数为SQL语句;第二个参数是Object。 sqlSession.insert("insertCar",carMap); 以上的"inserCar"是mybatsi的mapper文件当中SQL语句的ID。Myba
阅读全文
Java读取Resources文件为InputStream的几种方式
摘要:1. Mybatis的方式 InputStream in=Resources.getResourceAsStream("mybatis-config.xml"); 2.文件输入流的方式 InputStream is=new FileInputStream("mybatis-config.xml");
阅读全文
学习JavaWeb和Spring框架的路线
摘要:1. 基础 JavaSE的基本知识 MySQL基础 JDBC Web前端(html/css/javascript) 2. 进入JaveWeb的世界 Java Servlet--开始进入JaveEE的世界,servlet是JavaEE的组件之一 JSP Ajax jQuery 3. 进入Spring的
阅读全文
Windows10中安装Java JDK配置Tomcat10
摘要:在Windows10上面安装完Java JDK17后,不配置环境变量可以编译和运行Java程序。 但是,如果没有配置JDK环境变量,则运行Tomcat时会报错: Neither the JAVA_HOME nor the JRE_HOME environment variable is define
阅读全文
在Ubuntu 20上面安装OpenJDK17
摘要:1.升级Ubuntu软件资源库 sudo apt update && sudo apt upgrade -y 2.查找apt中的jdk版本 apt-cache search openjdk 3.安装open jre sudo apt-get install openjdk-17-jre 4.安装op
阅读全文
Idea Maven创建Java Web项目的坑
摘要:1.先创建一个Maven-JavaWeb项目,并配置Tomcat https://blog.csdn.net/weixin_33446857/article/details/82143258 这一步,点击运行tomcat,java web的默认页面可以打开了,但不能新建java class文件。 2
阅读全文
Idea利用SpringMVC创建servlet web工程需要的maven配置
摘要:1.如果不需要spring mvc,删除相关dependency即可。 2.Idea->pom.xml <!-- 以下为创建java spring mvc restful风格使用的jar包 --> <dependency> <groupId>javax.servlet</groupId> <arti
阅读全文
Java链式编程与流式计算
摘要:需求: 要求,只能用一行代码实现 现有5个用户,按照以下条件赛选: 1.ID必须是偶数 2.年龄必须大于23岁 3.用户名转为大写字母 4.用户名字倒着排序 5.只输出一个用户 以下是代码示例: import java.util.Arrays; import java.util.List; publ
阅读全文
Java的四大函数式接口
摘要:1.什么是函数式接口: 函数式接口是 Java8 引入的一个新特性,是一种特殊的接口:SAM类型的接口(Single Abstract Method),但本质上还是接口。相比较于其他接口,函数式接口有且只能有一个抽象方法。只要接口中出现多个抽象方法,那么就不能称之为函数式接口,运行的时候就会报错。为
阅读全文
Java多线程生产者消费者模式(二)之死锁与虚假唤醒
摘要:前提: 当只有一个生产者与消费者,也就是只有两个线程时,唤醒的永远时对方线程。 当只有一个生产者时和两个消费者,或者两个生产者与两个消费者时,唤醒的就是所有线程了,这样就会产生死锁和虚假唤醒。 多线程对多线程,必会有死锁和虚假唤醒问题。 比如下面的代码,初看正常,刚运行几次也正常,但多运行几次就出现
阅读全文
Java多线程(六)锁机制之JUC的locks接口
摘要:java.util.concurrent.locks这个接口是关于锁的。与synchronized相比,lock更具有灵活性. java.util.concurrent.locks的三个实现类: ReentrantLock ReentrantReadWriteLock.ReadLock Reentr
阅读全文
Java多线程生产者消费者模式(一)之两个线程交替执行
摘要:生产者与消费者模式能够实现两个线程交替执行,进一步深入之后能够实现让线程A->B->C->A这个多个线程互相唤醒,形成一个圈。 本篇,我们模拟一个包子铺,厨师线程作为生产者;吃货线程作为消费者。 生产者消费者模式的基本套路 1.生产者与消费判断是否等待的判断条件是相反的 2.生产者线程处理完后,唤醒
阅读全文
Java多线程(四)实现多线程的三种方法之JUC的Callable接口
摘要:什么是Callable: Callable是java.util.concurrent的一个接口,常常需要与java.util.concurrent.Executor类一起使用. java.util.concurrent简称JUC. Callable与Runnable的异同. 不同点 Runnable
阅读全文
Java线程的6种状态
摘要:一: Java的线程一共有6种状态,这是来自java官方源代码里面定义的,是最权威的。 NEW RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED 二: 如何查看源码: 输入以下代码,在IntelliJ Idea中按快捷键ctrl+B Thread.S
阅读全文
Java lambda表达式的进化论
摘要:前情提示: lambda表达式是JDK1.8的新特性 1. 进化的初级阶段之静态内部类 public class LambdaDemo { //静态内部类 static class ListenMusic implements Runnable { @Override public void run
阅读全文
Java内部类
摘要:1.内部类分为4种: 成员内部类(定义在类里面的类),又称普通内部类 局部内部类(定义在方法体或者代码块里面的类) 静态内部类(static关键字修饰的内部类) 匿名内部类 2.内部类的特点: 可以使用外部类的属性,即使这个属性是private的也可以使用 可以调用外部类的方法 在多线程时常用内部类
阅读全文
Java多线程(五)锁机制之synchronized 同步方法和同步块
摘要:1.锁是什么: 锁是为了控制共享的资源在被多个线程同时使用时产生冲突而产生的。 Java为了解决多线程带来的安全问题,采用了同步的方式来解决安全问题。 2.被锁住的时什么 被锁的资源只有两种:1) 类的对象 2) 或者类的Class 3.怎么锁 解决多线程的安全问题,Java提供了三种方式: 同步方
阅读全文
Java装饰者模式
摘要:1 什么是装饰者模式装饰者模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰者来包裹真实的对象。所以装饰者可以动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的方案。2 装饰者模式组成结构 抽象构件 (Component)
阅读全文
Java多线程(三)实现多线程的三种方法之Runnable接口
摘要:Java实现多线程的三种方法 继承Thread类 实现Runnable接口 实现Callable接口,这JUC并发包下的,属于比较高级的用法 这里讲的是第二种方法. 本篇内容: 演示如何通过Runnable接口实现多线程 演示多线程模拟龟兔赛跑 1. 通过实现Runnable接口 public cl
阅读全文