java
文章平均质量分 57
哈呀不撒
想要写深度好文的liwa
展开
-
API设计规范
PATCH---部分更新(从服务器端更新部分资源) 等这些方式来做,也就是说我们使用RESTful规范后,我们的接口就变成了一个了,要执行增删改查操作的话,我们只需要使用不同的请求动作(http method)方式来做就可以了,然后服务器端返回的数据也可以是相同的,只是我们前端会根据状态码来判断请求成功或失败的状态值来判断。如上我们可以看到,在未使用Restful规范之前,接口形式是不固定的,没有统一的规范,下面我们来看下使用RESTful规范的接口如下,两者之间对比下就可以看到各自的优点了。原创 2023-02-02 15:34:40 · 384 阅读 · 0 评论 -
Redisson Spring - Unexpected exception while processing command
Redisson Spring - Unexpected exception while processing command原创 2022-10-24 15:28:21 · 7246 阅读 · 0 评论 -
接口返回数据转化问题
请求外部接口返回结果中获取的data,如果直接用对象进行强转,则运行的时候会报错java.lang.ClassCastException: class java.lang.Objectcannot be cast to class...Response<Map<String,Object>> response = deviceClient.downFeature(deviceFeatureDto);ParkingLotDto parkingLotDto = ...原创 2022-02-17 16:26:44 · 766 阅读 · 0 评论 -
kafka消息异步处理
1111原创 2021-05-22 14:43:50 · 2527 阅读 · 0 评论 -
java内存区域理解
首先 你要搞清楚 堆和栈 是虚拟出来的概念 他们在内存中都只是一块区域,只是他们的存取规则被人为的限制了,一般来说 把类似指针的地址数据放在同一块内存区域这块区域遵守栈的存取规则我们就称之为栈 然后把主要的数据放在同一块内存区域并遵守堆的存取规则 我们称之为堆 其实他们物理上都是一样的东西 只是我们附加上了一些概念 最后之所以这么做 是为了优化存取速度我说的比较通俗点吧,栈内存转载 2017-07-18 14:17:04 · 478 阅读 · 0 评论 -
增强for循环不能给集合或者数组赋值
使用foreach循环遍历数组元素无须获得数组长度,也无须根据索引来访问数组元素。foreach循环与普通循环不同的是,它无须循环条件,无须循环迭代语句,自动循环数组中的每个元素,当所有元素都循环一遍后, 自动结束。 当使用foreach循环来迭代输出数组元素或集合元素时,通常不要对循环变量进行复制,虽然这种赋值在语法上是允许的,但没有太大的实际意义,而且极容易引起错误。原创 2016-11-29 15:32:43 · 5301 阅读 · 0 评论 -
java多线程、线程池及Spring配置线程池详解
1、java中为什么要使用多线程使用多线程,可以把一些大任务分解成多个小任务来执行,多个小任务之间互不影像,同时进行,这样,充分利用了cpu资源。线程池,其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。2、java中简单的实现多线程的方式继承Thread类,重写run方法;class MyTread extends Thread...转载 2018-04-10 14:40:09 · 1448 阅读 · 0 评论 -
Quartz的使用
挺闲,就研究了下项目,看到个quartz,之前是没怎么接触过的,就想着研究一下,上网查了点资料,总结一下以便记忆。 Quartz主要是一个任务调度框架,设定特定的时间去触发任务。 看了下,在我们项目中Quartz是通过xml文件配置的。 <!--++++++++++++++++++++++++定时执行生成索引任务实体++++++++++++++...原创 2018-10-16 20:04:56 · 176 阅读 · 0 评论 -
BlockingQueue
昨天研究了下quartz定时任务,在看xml的时候发现下面还配置了邮件的定时发送 <!--++++++++++++++++++++定时邮件发送++++++++++++++++++++++++++--> <bean id="emailService" class="com.***.usercenter.service.queue.EmailQueueSe...原创 2018-10-17 20:07:45 · 234 阅读 · 0 评论 -
Java 并发编程:volatile的使用及其原理
一、volatile的作用 在《Java并发编程:核心理论》一文中,我们已经提到过可见性、有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操作,对系统的性能有比较大的影响,所以,如果有其他解决方案,我们通常都避免使用Synchronized来解决问题。转载 2017-07-13 16:07:44 · 197 阅读 · 0 评论 -
Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
一、线程的状态 Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。 New:新建状态,当线程创建完成时为新建状态,即new Thread(...),还没有调用start方法时,线程处于新建状态。 Runnable:就绪状态,当调用线程的的start方法后,线程进入就绪状转载 2017-07-13 16:06:52 · 236 阅读 · 0 评论 -
jdbcTemplate的简单使用
让测试个新项目,用到了jdbcTemplate,新手不懂,就上百度翻了翻。JdbcTemplate主要提供以下五类方法:execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;query方法及转载 2016-11-25 14:14:18 · 392 阅读 · 0 评论 -
java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
Hibernate API简介 其接口分为以下几类: l 提供访问数据库的操作的接口; l 用于配置Hibernate的接口; l 回调接口 l 扩展Hibernate的功能的接口。 这些接口大多数位于net转载 2016-12-22 15:08:08 · 319 阅读 · 0 评论 -
Integer值和int值的比较
所谓装箱,就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。 所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据 javaSE5.0后提供了自动装箱与拆箱的功能,此功能事实上是编译器来帮您的忙,编译器在编译时期依您所编写转载 2017-02-28 16:15:19 · 2463 阅读 · 0 评论 -
面试摘要
原文链接:https://user.qzone.qq.com/2489169565/blog/14924893431. 面向对象的特征有哪些方面?抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继转载 2017-04-24 16:16:30 · 419 阅读 · 0 评论 -
Java 并发编程:核心理论
并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。在此基础上,我们会进一转载 2017-07-13 16:04:06 · 250 阅读 · 0 评论 -
Java并发编程:Synchronized及其实现原理
一、Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法: (1)修饰普通方法 (2)修饰静态方法 (3)修饰代码块转载 2017-07-13 16:05:16 · 230 阅读 · 0 评论 -
Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)
一、重量级锁 上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchron转载 2017-07-13 16:06:03 · 203 阅读 · 0 评论 -
用户变量和系统变量的区别
在我们安装了jdk之后,还无法编译和运行java(通过在运行菜单cmd中输入java和javac命令可以测试),这是因为还没有设置环境变量。 windows操作系统根据Path环境变量查找命令,如果能找到,则执行该命令,否则会出现“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”。而Linux操作系统则根据PATH环境变量来查找命令。PATH环境变量的值也是一系列路径。其中原创 2016-11-25 09:53:11 · 16517 阅读 · 2 评论