首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java各种O

    Java中数据封装会被命名为各种O,常见有PO、VO、DTO、BO、POJO。...1.PO PO是Persistant Object缩写,即持久化对象,通常对应数据模型,可以简单理解为一个PO实例对应数据库中一条记录,操作该实例即可以操作数据库中对应数据。...PO只封装数据库中对应记录,不应该包含对数据库操作。...5.POJO POJO是Plain Ordinary Java Object缩写,即简单Java对象,一个只有属性及属性setter和getter方法基本JavaBean,是一个中间对象...总结:对于各种O使用,需要根据所在层、用途、及场合来选择,设计这些不同Object目的就是为了区分不同应用场景下数据意义不同,彼此之间隔离开,避免思路上混杂,但是也不可过度为了区分而使用,这样会造成思绪上拥堵

    1K50

    Java各种

    参考:https://tech.meituan.com/2018/11/15/java-lock.html 乐观锁 VS 悲观锁 悲观锁认为自己在使用数据时候一定有别的线程来修改数据,因此在获取数据时候会先加锁...Java中,synchronized关键字和Lock实现类都是悲观锁。 乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据时候去判断之前有没有别的线程更新了这个数据。...乐观锁在Java中是通过使用无锁编程来实现,最常采用是CAS算法,Java原子类中递增操作就通过CAS自旋实现。 悲观锁适合写操作多场景,先加锁可以保证写操作时数据正确。...在不使用锁(没有线程被阻塞)情况下实现多线程之间变量同步。java.util.concurrent包中原子类就是通过CAS来实现了乐观锁。...CAS算法涉及到三个操作数: 需要读写内存值 V。 进行比较值 A。 要写入新值 B。

    36310

    Java各种IO流

    那我们文件又是怎么从我们本地上传到服务器,别人又是怎么从服务器将文件下载下来呢。其实这就要多亏我们“流”,正如他名字一样,当上传或下载文件时,文件会成“流”,最后流又组成了完整文件。...什么是IO流IO流是Java中用于程序和外部源进行文件传输一种中间形态,分为输入流(Input Stream)和输出流(Output Stream),分别用于读取文件和写入文件。...IO流类型Java中有关IO类一共都有40多个,但所有类都是基于以下4个类InputStream/OutputStream: 分别为字节流中输入流和输出流基类。...写入文件,不然可能会遇到文件数据类型不一致,或者乱码问题。...字节流主要处理文件类型以二进制方式存储文件,如图片,视频等就只能用字节流来处理,而字符流主要用于以Unicode字符存储数据流。

    9910

    Java去掉html标签各种姿势

    一、背景 业务开发中可能需要将html标签全部去掉,本文将多种方法综合在这里,供大家参考。..."; //定义style正则表达式 String regEx_html="]+>"; //定义HTML标签正则表达式...; import java.io.FileReader; import java.io.Reader; import java.util.List; import java.util.ArrayList...具体jar包请自行到中央仓库里搜索依赖配置 https://search.maven.org/  和 https://mvnrepository.com/ 三、提供一个工具类 可以将资源路径文本类型文件...测试时读取资源文件可以使用第三节提供工具类。 如果正则表达式无法满足你需求,自己进一步优化即可。 如果其他方式仍然有特殊情况没有考虑到,可以自己先用正则去除这种特殊情况。

    2.3K20

    你了解 Java 各种锁吗?

    类似地,我们使用线程池和信号量来约束资源使用。 但是缺不能知晓哪些管辖范围内活动可能形成资源死锁。Java应用程序不能从死锁中恢复,所以确保你设计能够避免死锁出现先决条件是非常有价值。...上面的例子出现死锁根本原因就是获取所顺序是乱序,超乎我们控制。...与内部锁机制不同,Lock提供了无条件,可轮询,定时,可中断锁获取操作,所有加锁和解锁方法都是显式。 Lock实现必须提供举报与内部锁相同内存可见性语义。...一般使用 select ...for update 对所选择数据进行加锁处理,例如 select * from account where name=”JAVA” for update, 这条sql...语句锁定了account 表中所有符合检索条件(name=”JAVA”)记录。

    63210

    Java去掉html标签各种姿势

    一、背景 业务开发中可能需要将html标签全部去掉,本文将多种方法综合在这里,供大家参考。...<\\/style>"; //定义style正则表达式 String regEx_html="<[^>]+>"; //定义HTML标签正则表达式...; import java.io.FileReader; import java.io.Reader; import java.util.List; import java.util.ArrayList...可以将资源路径文本类型文件(如json/html)读取成字符串 public class ResourceUtil { /** * 根据当前类路径,获取资源文件夹对应文件所有字符串...测试时读取资源文件可以使用第三节提供工具类。 如果正则表达式无法满足你需求,自己进一步优化即可。 如果其他方式仍然有特殊情况没有考虑到,可以自己先用正则去除这种特殊情况。

    1.8K10

    java8 各种GC总结

    1. jvm1.8内存布局 java内存布局大致如下图所示: ? 2. 垃圾确认方法 引用计数法: 给对象添加一个引用计数器,当有一个地方引用时,计数器就加1,当引用失效时,计数器就减1。...4.垃圾收集器 jvm1.8中支持垃圾收集器见下图: ? 上图表示不同GC收集器组合,根据业务场景不同,结合各垃圾收集器特点,在年轻代和老年代我们可以使用不同垃圾收集器。...4.7.2 G1收集过程 G1收集器将java堆从一个整体收集变成了一个个Region进行收集,收集过程中,采用垃圾优先,也就是会计算每个Region垃圾回收情况,回收最有利Region。...因此,这也是我们调优时候需要重点关注,G1退化情况。调优目的是尽量保证退化情况不出现。...5.总结 本文对JVM中各种GC回收器进行了总结,在配置GC回收策略时候,我们需要结合我们业务场景来进行: 并行GC是jdk1.8默认GC回收策略,默认采用 ParNew收集器 + Parallel

    94040

    java 工厂变形模拟各种应用

    工厂模式是在项目开发中使用效率高,意一个接口,该定义用于创建对象。让子类来决定哪一个类实例。...这就是一个工厂类示意图 接着来一个简单样例: 如上图所看到,我们首先定义我们产品抽象类接口,也能够是抽象类: package factory; public abstract class PlatForm...在工厂模式方法中抽象产品类负责定义产品共性,实现实物最抽象定义;creator为产品抽喜创建类,也就是抽象工厂详细怎样创建产品类有详细实现creator工厂类来完毕。...工厂类变种非常多,以下,我总结类一个比較通用源代码。...和上一种都比較类似了,当中简单工厂模式仅仅是简单把抽象工厂类去掉,然后把工厂实现类方法改成static方法。多级工厂模式是指:比如当我们见到一个比較复杂项目时。

    28220

    java各种集合类区别

    大家好,又见面了,我是你们朋友全栈君。 最近面试经常遇到java集合类问题,上网搜了一下,做个笔记 百度图 集合类型主要有3种:set(集)、list(列表)和map(映射)。...与Vector区别: 1.如果集合中元素数量大于当前集合数组长度时,Vector增长率是目前数组长度100%,而ArryaList增长率为目前数组长度50%。...客户化排序:其实就是实现java.util.Comparator接口提供具体排序方式, 是具体要比较对象类型,他有个compare方法,如compare(x,y)返回值大于...Map总结: javaMap(映射)是一种把键对象和值对象进行映射集合,其中每一个元素都包含了键对象和值对象,其中值对象也可以是Map类型数据,因此,Map支持多级映射,Map中键是唯一,但值可以不唯一...TreeMap 实现了java.io.Serializable接口,意味着它支持序列化。 TreeMap基于红黑树(Red-Black tree)实现。

    52220

    Java并发编程-各种

    类似地,我们使用线程池和信号量来约束资源使用, 但是缺不能知晓哪些管辖范围内活动可能形成资源死锁。Java应用程序不能从死锁中恢复,所以确保你设计能够避免死锁出现先决条件是非常有价值。...上面的例子出现死锁根本原因就是获取所顺序是乱序,超乎我们控制。...与内部锁机制不同,Lock提供了无条件,可轮询,定时,可中断锁获取操作,所有加锁和解锁方法都是显式。 Lock实现必须提供举报与内部锁相同内存可见性语义。...一般使用 select ...for update 对所选择数据进行加锁处理,例如 select * from account where name=”JAVA” for update, 这条sql...语句锁定了account 表中所有符合检索条件(name=”JAVA”)记录。

    86520
    领券