![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
java基础内容
咸鱼妹WWW
这个作者很懒,什么都没留下…
展开
-
AtomicInteger原子操作类
java.util.concurrent.atomic 的包里有AtomicBoolean, AtomicInteger,AtomicLong,AtomicLongArray,AtomicReference等原子类的类,主要用于在高并发环境下的高效程序处理,来帮助我们简化同步处理。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。(1)创建一个AtomicInt原创 2022-03-02 22:10:40 · 265 阅读 · 0 评论 -
抽象类和接口的区别
class CompanyFind(View): def get(self, request): # result = PersonModel.objects.filter(name="亮亮") # print(result[0].age) route_test = PersonModel.objects(id=ObjectId('607d3cefec8941f06fe79be2')) print(route_test) ..原创 2021-10-25 13:27:19 · 259 阅读 · 0 评论 -
foreach和for循环的区别
foreach语句是java5中的新增,在遍历数组,集合的时候性能比一般的for循环好一些。foreach是for循环的简化,foreach是for的充分不必要条件。任何foreach都能改写为for循环,反之则行不通。但是foreach并不能替代for循环。foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、数组等。foreach虽然能遍历数组或者集合,但是只能用来遍历,因为其省略了下标(index)所以无法在遍历的过程中对数组或者集合进行修改而for原创 2021-10-12 13:57:55 · 3238 阅读 · 0 评论 -
volatile关键字的作用
(1)保证内存的可见性 基本概念:可见性指的是线程之间的可见性,一个线程修改的状态对另一个线程是可见的。一个线程修改的结果,另一个线程能够马上就看到。 原理:废volatile变量进行读写的时候,每个线程先从主内存拷贝变量到CPU缓存中,如果计算机有多个CPU,每个线程可能会拷贝到不同的CPU cache中。但是volatile变量不会被缓存在寄存器或者是对其他处理器不可见的地方。保证每次读写变量操作都从主内存中读,跳过CPU cache这一步,当一个线程修改这个变量的值,新值对于其他线程而言是..原创 2020-12-17 15:24:37 · 742 阅读 · 0 评论 -
java为什么要重写hashCode和equals方法
(1)如果不被重写(原生)的hashCode和equals是什么样的?不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。 不被重写(原生)的equals方法是严格判断一个对象是否相等的方法(object1 == object2)。(2)对象在不被重写的情况下使用的是Object的equals方法和hashcode方法,从Object类的源码中可以得知默认的equals判断的是两个对象的引用指向的是不是同一个对象;而hashcode也是根据对象地址生成出一个整数数值;...原创 2020-11-26 14:28:10 · 347 阅读 · 0 评论 -
BitSet----位操作对象
BitSet是位操作的对象,值只有0或1即false和true,内部维护了一个long数组,初始只有一个long,所以BitSet最小的size是64,当随着存储的元素越来越多,BitSet内部会动态扩充,最终内部是由N个long来存储,这些针对操作都是透明的。用1位来表示一个数据是否出现过,0为没有出现过,1表示出现过。使用用的时候既可根据某一个是否为0表示,此数是否出现过。一个1G的空间,有 8102410241024=8.5810^9bit,也就是可以表示85亿个不同的数。注意:在没有外部...原创 2020-11-04 14:05:15 · 172 阅读 · 0 评论 -
HashSet的去重原理---Java基础
1.Java中HashSet是用散列表实现的,散列表的大小默认为16,加载因子为0.75.2.去重原理:当hashset add一个元素A的时候,首先获取这个元素的散列码(hashcode的方法),即获取元素的哈希值。情况一:如果计算出的元素的存储位置目前没有任何元素存储,那么该元素可以直接存储在该位置上。情况二:如果算出该元素的存储位置目前已经存在有其他元素了,那么会调用该元素的equals方法与该位置的元素再比较一次,如果equals返回的值是true,那么该元素与这个位置上的元素就视为重复原创 2020-11-02 10:48:32 · 8601 阅读 · 2 评论 -
Java基础----枚举enum的用法
JDK1.5引入的枚举类型,可以把相关的常量分组到一个枚举类型里面,而且 枚举提供了比常量更多的方法。1.在java中定义常量一般使用public static final....,为什么使用static和final关键字(被static修饰的成员变量属于类,不属于某个对象,被final修饰的成员变量不可以被修改),现在有了枚举可以把相关的常量分组到一个枚举类型里面,而且枚举提供了比常量更多的方法。Java代码:public enum Color {RED("红色", 1)...原创 2020-09-25 15:37:30 · 743 阅读 · 0 评论 -
接口和抽象类区别以及应用场景
实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。构造函数:抽象类可以有构造函数;接口不能有。实现数量:类可以实现很多个接口;但是只能继承一个抽象类。访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。...原创 2020-06-22 16:14:36 · 2115 阅读 · 0 评论 -
HashMap 和 Hashtable 有什么区别?
存储:HashMap 运行 key 和 value 为 null,而 Hashtable 不允许。线程安全:Hashtable 是线程安全的,而 HashMap 是非线程安全的。推荐使用:在 Hashtable 的类注释可以看到,Hashtable 是保留类不建议使用,推荐在单线程环境下使用 HashMap 替代,如果需要多线程使用则用 ConcurrentHashMap 替代。...原创 2020-06-22 16:13:01 · 235 阅读 · 0 评论 -
创建线程有哪几种方式?
创建线程有三种方式:继承 Thread 重写 run 方法;实现 Runnable 接口;实现 Callable 接口。原创 2020-06-22 15:12:50 · 216 阅读 · 0 评论 -
在 Java 程序中怎么保证多线程的运行安全?
方法一:使用安全类,比如 Java. util. concurrent 下的类。方法二:使用自动锁 synchronized。方法三:使用手动锁 Lock。手动锁 Java 示例代码如下:Lock lock = new ReentrantLock();lock. lock();try { System. out. println("获得锁");} catch (Exception e) { // TODO: handle exception} finally { S...原创 2020-06-22 14:59:17 · 3321 阅读 · 0 评论 -
Java基础——运算符&(按位与)
即参加运算的两个数按照二进制进行按位与运算,运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1,也就是说两位同时为1结果才是1否则为0. 按位“与”的计算是把两个数字分别写成二进制形式,然后按照每一位判断,&计算中,只要有一个是0就算成0。...原创 2020-06-01 14:09:11 · 947 阅读 · 0 评论 -
Java基础——Final关键字的使用
1.final表示最终的,用final可以修饰几种成员:①修饰变量:成为常量。②修饰方法:则不能被子类重写。③修饰类:不能被继承。④final关键字与抽象方法不能连用,final与abstract不能连用。2.final、finally和finalize()进行区别?①final最终的,修饰变量表示常量,修饰方法表示子类不能被重写,修饰类,表示不能被继承。②finall...原创 2019-10-08 20:50:52 · 120 阅读 · 0 评论 -
Java基础——static关键字
Java中的static关键字主要用于内存管,static 关键字属于类,而不是类的示例。在程序中任何变量或者代码都是编译时分配代码的,而静态修饰的就会一直存在内存中,直到程序退出。static关键字修饰的成员: (1) static修饰的成员: 类成员/静态成员。(或者:变量、方法、块(也就是局部代码块)、内部类) (2)特点: 实例共享。 (3) 内存位置 :方法区...原创 2019-09-27 21:37:11 · 135 阅读 · 0 评论 -
Java基础——this关键字
this:(1)this调用本类中的属性,也就是类中的成员变量;(2)this关键字指代当前对象,格式:this.成员;(3)指代本类构造方法的调用,格式:this(参数)。注意:(1)this指代构造方法,只能放在第一行。(2)构造方法不能在一般方法里直接调用。(3)在调用时不能嵌套调用(来回)。...原创 2019-09-27 20:58:51 · 119 阅读 · 0 评论 -
Java基础——打印菱形
将菱形分为上下两部分,外层循环控制行数,内层分为两个循环,分别控制空格输出和“*”输出。 import java.util.Scanner;public class Lingxing { public static void main(String[] args) { int i, j, n; Scanner input = new Scanner(System.in);...原创 2019-09-23 10:46:50 · 288 阅读 · 0 评论 -
Java基础——java的三大平台体系
Java的三大体系平台①Java EE (企业版):是一种利用JAVA 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。 为企业级的、服务器端的高端应用而设计的;②Java SE(标准版) :是SUN公司针对桌面开发和低端商务计算方案开发的版本。为笔记本电脑、PC机设计的;③Java ME (微缩版):是面向内存有限的移动终端. 为消费性产品设计的;...原创 2019-09-23 09:57:29 · 775 阅读 · 0 评论 -
Java基础——计算机的发展、编程语言的发展。
计算机发展:①电子管计算机;②晶体管计算机;③集成电路计算机;④大规模集成电路计算机;2. 编程语言的发展:①机器语言;②汇编语言;③高级计算机语言;...原创 2019-09-23 09:51:07 · 107 阅读 · 0 评论