while java
Java-泛型机制详解
Java-泛型机制详解 1: 提出背景 Java集合(Collection)中元素的类型是多种多样的。例如,有些集合中的元素是Byte类型的,而有些则可能是String类型的,等等。Java允许程序员构建一个元素类型为Object的Collection,其中的元素可以是任何类型在[Java SE]( ......
java设计模式之观察者模式及springboot应用
1.介绍 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。一般是多个观察者观察一个被观察者。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。也叫订阅-发布模式,监听器模式。 2.场景 当用户注册以后,需要给用户发送邮件,发送优惠券等操作 ......
java8删除两个list中的重复元素
public static void main(String[] args) { List<Integer> months = Lists.newArrayList(); months.add(1); months.add(2); months.add(3); months.add(4); List ......
(之前的项目复习)我的Java项目实战--校园餐饮商户外卖系统02
开发笔记二 1.完善登录功能 问题分析 前面我们已经完成了后台系统的员工登录功能开发,但是还存在一个问题:用户如果不登录,直接访问系统首页面,照样可以正常访问。 这种设计并不合理,我们希望看到的效果应该是,只有登录成功后才可以访问系统中的页面,如果没有登录则跳转到登录页面。 那么,具体应该怎么实现呢 ......
PDF/Excel文件预览功能完整实现-java版本
PDF/Excel文件预览功能完整实现-java版本 新需求 最近接到一个新的需求,说是之前直接下载的PDF文件或者是Excel文件,现在不能直接下载,需要实现在线预览功能。 前端人员拿到这个需求后,去看了一下以前的代码,以前调用的下载接口和PDF文件预览接口都是直接将文件成二进制 流的形式,然后响 ......
java去掉字符串前面的空格
Java 去掉字符串前面的空格可以使用 trim() 方法,例如: String str = " hello world"; str = str.trim(); // 去掉前面的空格 System.out.println(str); // 输出 "hello world" trim() 方法会返回去 ......
Java开发:服务器上配置jdk环境变量后java命令正常但javac报错问题
一、问题如下: 在服务器上配置jdk环境变量时,java命令运行正常,javac报错如下: Error occurred during initialization of VM;java/lang/NoClassDefFoundError:java/lang/Object. 没有找到基础类库,可以确 ......
用java找出两个集合中相同的元素和不通的元素
用java找出两个集合中相同的元素和不通的元素 假设有两个集合A和B,可以通过以下代码找出它们中相同的元素和不同的元素: import java.util.*; public class Main { public static void main(String[] args) { Set<Inte ......
让代码变得优雅简洁的神器:Java8 Stream流式编程
原创/朱季谦 本文主要基于实际项目常用的Stream Api流式处理总结。 因笔者主要从事风控反欺诈相关工作,故而此文使用比较熟悉的三要素之一的**【手机号】黑名单**作代码案例说明。 我在项目当中,很早就开始使用Java 8的流特性进行开发了,但是一直都没有针对这块进行开发总结。这次就对这一块代码 ......
【Java 线程池】【一】线程池介绍和基本使用
1 前言 这节开始我们主要是攻克一下Java中的线程池,来深入的分析一下线程池是怎么设计的,线程池的原理是什么等,只有更好的理解原理,才能很好的使用并且规避掉一些问题,那么本节我们先简单介绍下线程池是什么以及平时大家的使用方法。 2 线程池的使用 大都是为了提升效率,并发的做某些事情;或者是将一个任 ......
java之Optional
ofNullable 使用静态方法 ofNullable() 创建一个即可空又可非空的 Optional 对象 String name = null; Optional<String> optOrNull = Optional.ofNullable(name); System.out.println ......
【Java 并发】【十】【JUC数据结构】【八】ConcurrentHashMap原理
1 前言 上一节我们讲解了HashMap底层的实现,但是HashMap不是线程安全的,存在多个线程并发操作的线程安全的问题。今天我们就来看一下ConcurrentHashMap这个数据结构,并发安全版本的Map结构。 2 ConcurrentHashMap内部源码 2.1 内部属性 // 最大容量上 ......
c#快速入门~在java基础上,知道C#和JAVA 的不同即可
☺ 观看下文前提:如果你的主语言是java,现在想再学一门新语言C#,下文是在java基础上,对比和java的不同,快速上手C# C# 学习参考文档和开发工具 微软c#官方文档:https://learn.microsoft.com/zh-cn/dotnet/csharp/tour-of-cshar ......
Java基础
一、注释 当项目复杂时,我们很难看懂代码逻辑,所以我需要再编写代码时添加注释以提醒自己或者别人。 注释不会被执行,是给写代码的人看的 书写注释是一个非常好的习惯。平时的编程过程中一定要注意规范 1.单行注释://...(双斜杠加内容) 2.多行注释:/**/(2个单斜杠中间加上2个星号) 3.文档注 ......
Java设计模式 —— 观察者模式
16 观察者模式 16.1 观察者模式概述 Observer Pattern: 定义对象之间的依赖关系(一对多),当一个对象的状态发生改变时,其关联的依赖对象均收到通知并自动更新。 观察者模式又称:发布-订阅模式,源-监听器模式 观察者模式结构图如下所示: 16.2 观察者模式实现 16.2.1 抽 ......
java并发编程(2):Java多线程-java.util.concurrent高级工具
伴随着多核CPU的出现,也就意味着不同的线程能被不同的 CPU 核得到真正意义的并行执行。Java 是最先支持多线程的开发的语言之一,Java1 5提供了一个非常高效实用的多线程包:java util concurrent ......
java并发编程(1):Java多线程-基本线程类-基础知识复习笔记
多线程只有一个目的,那就是更好的利用cpu的资源,基本线程类指的是Thread类,Runnable接口,Callable接口,传统java多线程编程 需要注意的 线程安全 线程同步 线程通信 synchronized volatile ……一锅乱炖 ......
java反射机制原理剖析
没有反射也就没有框架,现有的框架都是以反射为基础。 Spring 中,最重要的概念就是 IOC 控制反转。而 IOC 的实现原理就是反射。通过反射来构造 Java Bean 的对象,调用其方法。反射就是在运行时才知道要操作的类是什么 ......
Java注解(批注)的基本原理
为什么要使用注解? 早期版本的Spring是通过XML文件的形式对整个框架进行配置的,一个缩减版的配置文件如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/bea ......
【Java 并发】【十】【JUC数据结构】【七】ConcurrentHashMap前置篇HashMap原理
1 前言 前几节我们分析了一些并发安全的数据结构,分别是CopyOnWrite系列的CopyOnWriteArrayList、BlockingQueue阻塞队列系列的LinkedBlockingQueue、ArrayBlockingQueue、DelayQueue。接下来我们要讲解一个很重要的并发安 ......
Python同Java及C++的不同之处
Python同Java及C++的不同之处1. C++、Java对变量的定义很严格 比如 int a = 0 python则直接定义 a=0 2. C++、Java代码结束时需要用 ;隔开 比如 int a =0; ,而python则不用 a=0 直接换行即可 3. C++、Java中的循环或者判断需 ......
Java 异常处理:使用和思考
概念 异常处理的概念起源于早期的编程语言,如 LISP、PL/I 和 CLU。这些编程语言首次引入了异常处理机制,以便在程序执行过程中检测和处理错误情况。异常处理机制随后在 Ada、Modula-3、C++、Python、Java 等编程语言中得到了广泛采用和发展。在 Java 中,异常处理是提供一 ......
Java5
使用for循环计算1-100的和,除了以3结尾的那些数 package dsfa; public class dgd { public static void main(String[] args) { // TODO Auto-generated method stub int i,sum=0; ......
近万字总结:Java8 Stream流式处理指南
总结/朱季谦 在实际项目当中,若能熟练使用Java8 的Stream流特性进行开发,就比较容易写出简洁优雅的代码。目前市面上很多开源框架,如Mybatis- Plus、kafka Streams以及Flink流处理等,都有一个相似的地方,即用到Stream流特性,其写出的代码简洁而易懂,当然,若是在 ......
从java到JavaScript(2):对比Java/Go/Swift/Rust看Dart
Dart与Java的一些直观区别GoGo作为一种简单的语言,非常适合构建网络应用程序,这是正确的,如果你不需要其他功能,如泛型。个人觉得Dart和Java JavaScript有很多共通之处,对于typescript,个人觉得dart替代性更好 ......
从java到JavaScript(1),看Dart:对比Java/Go/Swift/Rust
动态类型语言不满足人民群众日益增长的性能需求,同时暴露了对类型过于宽松而造成的可维护性,可调试性下降。Dart作为新时代的语言,支持JIT与AOT的新人,个人觉得还是好好琢磨下,笔记可能是未来web王者 ......
【Java 并发】【十】【JUC数据结构】【六】SynchronousQueue同步阻塞队列原理
1 前言 看过了LinkedBlockingQueue、ArrayBlockingQueue、DelayQueue等阻塞队列,这节我们又要看一个不一样的队列,SynchronousQueue同步阻塞队列。 2 SynchronousQueue是什么 SynchronousQueue的同步队列,使用的 ......
Cause: java.sql.SQLSyntaxErrorException: Unknown database 'java_test'
Cause: java.sql.SQLSyntaxErrorException: Unknown database 'java_test' 我的原因是库名写错了,这里要修改成自己数据库的名字,不能是表名或者其他。 ......
Java8 Stream
Java8 Stream 1 Stream概述 2 Stream的创建 3 Stream的使用 案例使用的员工类 3.1 遍历/匹配(foreach/find/match) 3.2 筛选(filter) 3.3 聚合(max/min/count) 3.4 映射(map/flatMap) 3.5 归约 ......
【Java 并发】【十】【JUC数据结构】【五】DelayQueue延迟阻塞队列原理
1 前言 前两节我们看了BlockingQueue阻塞队列的两个子类,LinkedBlockingQueue、ArrayBlockingQueue,它们都是使用了ReentrantLock、Condition的来实现的,在进行插入操作、拉取数据操作之前为了并发安全都需要进行加锁;然后插入时候在容量满 ......