一、keyframes的使用方法 keyframes是css3实现动画的一种方式。...二、keyframes在不同浏览器中的表现性 IE 9以下不支持 IE10支持文字和样式动画,但不支持图片帧动画 Firefox支持文字和样式动画,不支持图片帧动画 Chrome支持各种形式的动画 下面我写了一段代码来测试...keyframes在不同浏览器中的表现性 index.html <!...中,仙鹤和小球均无动画效果 ?...在IE10中,仙鹤无动画效果,小球运动 ? 在Firefox中,仙鹤无动画效果,小球运动 ? 在Chrome中,仙鹤和小球均有运动效果,keyframes只在chrome中表现良好 ? 在线演示
一:java中==、equals的不同 1....当然,对于不同的封装类型,比较时也会有一些异同。例如:String类型的比较 1....但是超过这个区间的话,会直接创建各自的对象(在进行自动装箱的时候,调用valueOf()方法,源代码中是判断其大小,在区间内就缓存下来,不在的话直接new一个对象),即使值相同,也是不同的对象,所以返回...方法(object为java中所有类的父类),Object类的equals方法的实现代码如下: boolean equals(Object o){ return this==o; }...二:js中==与===的不同 1.首先===只能在js中使用,不能在java程序中使用,会报错。 2.
本文已收录《Java常见面试题》:https://gitee.com/mydb/interview 方法重载是指在同一个类中,定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载...doSomething } public void method(Integer id, String name) { // doSomething } } 为什么不同返回类型不算方法重载...方法签名是由:方法名称 + 参数类型 + 参数个数组成的一个唯一值,这个唯一值就是方法签名,而 JVM(Java 虚拟机)就是通过这个方法签名来决定调用哪个方法的。...: 那为什么返回类型不能做为方法签名的一部分呢?...总结 在同一个类中定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载。方法重载的典型使用场景是 String 中的 valueOf 方法,它有 9 种实现。
为什么在Java中没有为空字符串设置访问API呢?...=========================熟悉Java的朋友都知道,当我们通过双引号创建字符串的时候,Java 会将字符串存储在常量池中以供我们下次使用但是为什么String类不为我们提供一个对空字符串的引用呢因为这样做至少可以节省了编译的时间...我个人认为这某种意义上来说这有点“代码味道”所以说,关于String的空字符一说在Java中中是否有更加复杂的涉及考虑还说设计者没有考虑到这个问题呢回答1===String.EMPTY是12个字符,而"..."仅仅2个字符,它们在运行时都将引用内存中完全相同的实例。...一个""到底是真的就是空内容呢?还是开发者忘记写上内容了呢。所以建议自己在全局类上建立一个空的String。 其他地方引用。 我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
String 在 Java 中是不可变的。 不可变类只是一个无法修改其实例的类。 创建实例时,将初始化实例中的所有信息,并且无法修改信息。 不可变类有许多优点。...本文总结了为什么 String 设计为不可变的。 这篇文章从内存,同步和数据结构的角度说明了不变性概念。 1. 字符串池 字符串池(String intern pool)是方法区域中的特殊存储区域。...如果字符串是可变的,则使用一个引用更改字符串将导致其他引用的错误。 2. 缓存的哈希码 字符串的哈希码经常在 Java 中使用。 例如,在 HashMap 或 HashSet 中。...在String类中,它具有如下代码: private int hash;//this is used to cache hash code. 3....当然,上面的示例仅用于演示目的,并且实际字符串类中没有值字段。 4. 安全 String 被广泛用作许多 java 类的参数,例如 网络连接,打开文件等。
Java 输入一直是一个坑,本来一直用 Scanner,但一直搞不懂换行符啥的,就用 BufferReader ,但前不久大疆笔试需要持续输入,早忘了 Scanner 怎么写,而那个场景用 Scanner...回车符 “\r” 它被丢弃在缓冲区中,现在缓冲区中,只有一个 \r ,于是 下一次 nextLine 扫描的时候就又扫描到了 \r,返回它之前的内容,也是啥都没有 “” ,然后再把 \r 去掉, 对于...,而我们在控制台中输入的数据也都是被先存入缓冲区中等待扫描器的扫描读取。...这个扫描器在扫描过程中判断停止的依据就是“结束符”,空格,回车,tab 都算做是结束符 而坑点在于 next 系列的,也就是下面这些函数:next nextInt nextDouble nextFloat...这些函数与 nextLine 连用都会有坑 坑点就是 next 系列的函数返回了数据后,会把回车符留在缓冲区,因此我们下一次使用 nextLine 的时候会碰到读取空字符串的情况 解决方案:输入都用
http://blog.csdn.net/FansUnion/article/details/79495080 面试题:为什么最后两行没有运行?...可以参考http://blog.csdn.net/taohuaxinmu123/article/details/24472073中对Java虚拟机栈(Java Virtual Machine Stacks...在这三步任何之间都可能会有CPU调度产生,造成i的值被修改,造成脏读脏写。 接下来说volatile不能解决这个线程安全问题。因为volatile只能保证可见性,不能保证原子性。...为什么AtomicInteger使用CAS完成?...最初是没有CAS,只有陷入内核态的锁,这种锁当然也需要硬件的支持。后来硬件发展了,有了CAS锁,把compare 和 set 在硬件层次上做成原子的,才有了CAS锁。
这篇文章讨论了Java面向对象概念中一个基本的概念--Field Hiding(成员变量隐藏) 成员变量在Java中能够被重写么?...Paste_Image.png 按照我们已有的多态的概念,第二个应该是输出sub才对,但却输出了super。这是为什么呢?...不会重写成员变量,而是隐藏成员变量 Java文档中对隐藏域的定义: Within a class, a field that has the same name as a field in the superclass...意思就是: 在一个类中,子类中的成员变量如果和父类中的成员变量同名,那么即使他们类型不一样,只要名字一样。父类中的成员变量都会被隐藏。在子类中,父类的成员变量不能被简单的用引用来访问。.../simple-java/
前言 大家好啊,我是汤圆,今天给大家带来的是《Java中的三大特性 - 超详细篇》,希望对大家有帮助,谢谢 这一节的内容可能有点多,大家可以选择性的来看 简介 Java的三大特性:封装、继承、多态 乍一听...)去做 抽象类有一个很重要的特点:抽象类可以没有抽象方法,但是如果一个类有抽象方法,那么这个类肯定是抽象类 为什么会有抽象类 解耦,使代码结构更加清晰 因为抽象类不能被直接创建为对象,它只是作为一个通用接口来供别人实现和调用...重载(overloading)和覆写(overwriting) 重载和覆写是两个很容易混淆的概念 重载:同一个类中,一个方法的多种表现形式(参数类型不同,参数个数不同) 覆写:继承设计中,子类覆盖父类的方法...,方法名会被直接替换为方法内容 比如:final getName()这个方法可以内联为name属性 再比如:getSum(){return a+b},会直接被内联为a+b 为什么会有内联这个东西呢?...多态(Polymorphism) 字面理解,就是多种形态,在Java中,多态指的是,一个类可以有多种表现形态 多态主要是 用来创建可扩展的程序 像我们上面提到的继承就是属于多态的一种 还有一种就是接口(
大家好,又见面了,我是你们的朋友全栈君。 简介 Java的三大特性:封装、继承、多态 乍一听,好像很高大上,其实当你真正用的时候,会发现高大上的还在后面呢。。。...)去做 抽象类有一个很重要的特点:抽象类可以没有抽象方法,但是如果一个类有抽象方法,那么这个类肯定是抽象类 为什么会有抽象类 解耦,使代码结构更加清晰 因为抽象类不能被直接创建为对象,它只是作为一个通用接口来供别人实现和调用...重载(overloading)和覆写(overwriting) 重载和覆写是两个很容易混淆的概念 重载:同一个类中,一个方法的多种表现形式(参数类型不同,参数个数不同) 覆写:继承设计中,子类覆盖父类的方法...,且没有被其他类覆写时,方法名会被直接替换为方法内容 比如:final getName()这个方法可以内联为name属性 再比如:getSum(){return a+b},会直接被内联为a+b 为什么会有内联这个东西呢...多态(Polymorphism) 字面理解,就是多种形态,在Java中,多态指的是,一个类可以有多种表现形态 多态主要是 用来创建可扩展的程序 像我们上面提到的继承就是属于多态的一种 还有一种就是接口
说cpu使用率不高,为什么负载那么高?截图为证。 ? 我也没见过说负载高,cpu使用率不高的。...同样,跟分析java的任意进程一样。打堆栈、转pid,找到它。 为什么这里,我要这样做,而不是问jmeter执行的什么脚本、什么业务逻辑呢? 因为这种的远程分析,信息的传递经常会有缺失。...在性能分析过程中,经常出现的一种情况就是“我觉得是没有问题的”、“我觉得这个角度我已经分析过了”。可怕的就是这种“我觉得”,因为判断的标准因为技术背景和经验、以及经历的不同,会出现完全不同的判断结果。...所以在大部分的沟通过程中,我都倾向于自己看数据的方式,因为这样的数据只会表现真实的情况,不会给一个错误的判断,而这个判断只能由自己来做。 ?...总体来说,从问题的表象到原因之间,都是会有证据可循的。而在分析的过程中就是要把证据找出来。层次清晰,逻辑合理,不要绕来绕去把问题复杂化。
Java 中的 equals 和 == 对于不同的数据类型有不同的表现,话不多少,看演示。...,== 不是判断两者是否相等么,那为什么结果为 false 呢?...因为这里的 Integer 是一个对象,也就是引用数据类型,里面存放的是对象在堆内存中的引用值,所以这里的 == 只是判断两者的引用值是否相同,两者创建了两个对象,在堆内存中分别是不同的引用,由而引用值也不同...因为在 Java 5 中,为 Integer 的操作引入了一个新的特性,用来节省内存和提高性能。整型对象在内部实现中通过使用相同的对象引用实现了缓存和重用。...true 很容易理解,毕竟两个对象的引用不同,但是 equals 不是判断值是否相同么,我的两个id 和 name 都是一样的,为什么这里还会返回 false 呢?
java中的Volatile关键字使用 在本文中,我们会介绍java中的一个关键字volatile。volatile的中文意思是易挥发的,不稳定的。那么在java中使用是什么意思呢?...我们知道,在java中,每个线程都会有个自己的内存空间,我们称之为working memory。这个空间会缓存一些变量的信息,从而提升程序的性能。...那么我们就可以使用Volatile关键字来强制将变量直接写到main memory,从而保证了不同线程读写到的是同一个变量。 什么时候使用volatile 那么我们什么时候使用volatile呢?...java.lang.AssertionError: Expected :1000 Actual :992 ~~ 为什么呢?...a是一个非volatile变量,flag是一个volatile变量,但是由于happens-before的特性,a 将会表现的和volatile一样。
前言 大家好啊,我是汤圆,今天给大家带来的是《Java中的集合Set - 入门篇》,希望对大家有帮助,谢谢 简介 前面介绍了集合List,映射Map,最后再简单介绍下集合Set,相关类如下图所示 [集合...] 正文 Set从外面看像List(都是存储单一数据的集合),只不过存储的数据不会有重复; 但是里面却是Map映射(因为它内存存储是基于Map结构实现),这也是为什么把Set放到Map后面来说的原因。...[TreeSet报错 Comparable] 可是为什么要转换呢?我也没有转换啊 那是因为内部自动转换了 TreeSet啥时候会自动将元素类转为Comparable呢?...1 : -1; } } 此时运行就没问题了 那为什么TreeMap没有这个问题呢?...LinkedHashSet拥有HashSet的大部分优点,且保证了插入的顺序,使得在查询的时候,可以按照插入的顺序依次读取(原理是链表) 这里要注意一点:在Java程序语言设计中,所有的链表都是双向链表
设计模式 [设计模式.png] Java中的 23 种设计模式在开发中应用很多,不仅仅是我们平时的应用开发,还包括一些框架和系统源码中都有应用,具体的内容不能生搬硬套,而是在经验中去体会这个过程,思考应用设计模式的时机和场景...等等),这个概念总体给人是一种抽象的,但还大概知道这个词具有哪些 共性 ,而这里的 共性 就是抽象出来的具体能力,Java中叫抽象方法,因为每个具体的开发者所具有的同一个方法内部能力表现不同,这就是具体子类要实现的...在我们实际开发中,根据业务场景,我们要自己去提取抽象类,进而实现分离的能力,而所分离出来的多个子类,具有不同的表现形式,就是多种形态的,故名 多态 。...关键字 instanceof 相信你能明白,我们抽离出来了抽象类(父类),那么子类的表现各异,而父类如何判断一个子类是否是它的子类呢?这就是关键字 instanceof 的用处。...Java为什么会有接口(interface)? 接口的使用规则和接口中方法的定义 内部类的应用场景?
一、Java基础 为什么JVM调优经常会将-Xms和-Xmx参数设置成一样; Java线程池的核心属性以及处理流程; Java内存模型,方法区存什么; CMS垃圾回收过程; Full GC次数太多了,如何优化...在内存中的对象上表现为什么? wait/notify/notifyAll⽅法需不需要被包含在synchronized块中?这是为什么? ExecutorService你一般是怎么⽤的?...(数据库索引) 三、Linux基础 Linux下可以在/proc目录下可以查看CPU的核心数等;cat /proc/下边会有很多系统内核信息可供显示; 说一下栈的内存是怎么分配的; Linux各个目录有了解过吗...说一下栈帧的内存是怎么分配的; Linux下排查某个死循环的线程; 动态链接和静态链接的区别; 进程的内存分布; 如何查找一个进程打开所有的文件; 说一下常使用的协议及其对应的端口; 为什么会有内核态,...文件是怎么在磁盘上存储的? 有了进程为何还要线程呢,不同进程和线程他们之间有什么不同。(进程是资源管理的最小单位,线程是程序执行的最小单位。
FileChannel 为什么比普通 IO 要快呢?...,文件中的位置在虚拟内存中有了对应的地址,可以像操作内存一样操作这个文件,相当于已经把整个文件放入内存,但在真正使用到这些数据前却不会消耗物理内存,也不会有读写磁盘的操作,只有真正使用这些数据时,也就是图像准备渲染在屏幕上时...紧接着我还要告诉你一些令你沮丧的事,至少在 JAVA 中使用 MappedByteBuffer 是一件非常麻烦并且痛苦的事,主要表现为三点: MMAP 使用时必须实现指定好内存映射的大小,并且一次 map...至于 MMAP 为什么在一次写入少量数据的场景下表现的比 FileChannel 优异,我还没有查到理论根据,如果你有相关的线索,欢迎留言。...话说回来,Java 怎么用 Direct IO 呢?有没有什么限制呢?
java高并发系列第4篇文章 JMM(java内存模型),由于并发程序要比串行程序复杂很多,其中一个重要原因是并发程序中数据访问一致性和安全性将会受到严重挑战。如何保证一个线程可以看到正确的数据呢?...在java中,其表现在对于共享变量的某些操作,是不可分的,必须连续的完成。...java中实现原子操作的方法大致有2种:锁机制、无锁CAS机制,后面的章节中会有介绍。 可见性 可见性是值一个线程对共享变量的修改,对于另一个线程来说是否是可以看到的。...有些同学会说修改同一个变量,那肯定是可以看到的,难道线程眼盲了? 为什么会出现这种问题呢? 看一下java线程内存模型: ?...(不能越级) 不同线程之间也无法直接访问其他线程的工作内存中的变量,线程间变量值的传递需要通过主内存来进行。
领取专属 10元无门槛券
手把手带您无忧上云