前言 我们都知道对于有符号数据类型,二进制最左端的数字为符号位,0代表正,1代表负,这里先介绍几个概念 逻辑左移=算术左移:高位溢出,低位补0 逻辑右移:低位溢出,高位补0 算术右移:低位溢出,高位用符号位的值补...比如一个有符号位的8位二进制数10101010,[]是添加的数字 逻辑左移一位:0101010[0] 逻辑左移两位:101010[00] 算术左移一位:0101010[0] 算术左移两位:101010...[00] 逻辑右移一位:[0]1010101 逻辑右移两位:[00]101010 算术右移一位:[1]1010101 算术右移两位:[11]101010 算术左移和算术右移主要用来进行有符号数的倍增...、减半 逻辑左移和逻辑右移主要用来进行无符号数的倍增、减半 Java中是没有无符号数据类型的,C和C++中有 符号 例子 解释 << num<< n 算术左移 相当于 num*(2的n次方) >...> num>>n 算术右移 相当于num/(2的n次方) >>> num>>>n 逻辑右移,当num为正数和算术右移一个效果 例子 public static void main(String[] args
i++,i--和++i,--i的区别: i++,i--是先赋值后运算; ++i,--i是先计算后赋值; ? ?...i++是先将i的值赋给j,然后i再加1,所以最终i=2,j=1;++i是先i加1,然后再将i赋给j,所以最终i=3,j=3; i-- 是先将i的值赋给j,然后i再减1,所以最终i=2,j=3;--i
一、使用==判断两个变量是否相等 (1)对于基本类型的变量,值相等则返回true (2)对于引用类型的变量,只有指向同一个对象时才返回true。 ==不可以比较类型上没有父子关系的两个对象。...如果没有重新equals方法的话,它与==是没有任何区别的,但是一般都是重写equals方法来定制自己的相等规则。...特别注意:String已经重写了equals()方法,其相等的标准是两个字符串所包含的字符序列相同。
的引用 this.属性名,表示本对象自己的属性 当对象的属性和方法或构造器中,名称相同时,用 this 以示区分。...extends Person{ public Student(){ super(); } } 在继承中,子类的构造函数必须依赖父类提供的构造函数 //父类中只有带参构造方法...20); } } 2.2 super访问父类的属性 在子类的方法或构造器中,通过使用 super.属性 来访问父类属性 应用场景: 当子类和父类中定义了同名的属性时,想要调用父类中声明的属性,需要通过...super.属性 的方式来表明调用的是父类中声明的属性。...this 的区别 super() 是调用父类的构造函数,必须在构造函数的第一行 this() 是调用本类的构造函数,必须在构造函数的第一行 super() 和 this() 在同一个构造方法中,不能同时出现
今天遇到&&和&的区别这个问题,在这里做个记录。...&&和&都是用于“与”运算,不同的是&&是逻辑与,&是按位与,所谓逻辑与指的是两个判断条件在都为true时结果为true,举个生活中例子,比如英语成绩大于90与数学成绩大于90才是好学生一样,代码如下:...,也就是二进制位,可以对两个参数中对应的位执行布尔操作,并产生一个结果。...java刚产生的初衷是嵌入计算机机顶盒内,需要用于直接操作硬件,设置硬件寄存器内的二进制位,所以现在依旧保留了下来,但目前来说不会经常用到,所以作为了解就可以了。...如果两个输入为都为1,使用“&”操作符返回1,否则返回0. java里面的|和||也是这样的关系 转载于:https://www.cnblogs.com/lihao110/p/10537123.html
this: . this是用于区别局部变量和成员变量同名的情况。 . this代表它所在函数、所属对象的引用。 简单的说: 哪个对象在调用this所在的函数,this就代表哪个对象!...---- super: 子类可以调用父类的非私有方法,因业务逻辑需要,子类可能会重写父类的一些方法,有时候,我们又可能会调用被重写的父类的方法,这个时候就需要用 super.父类方法 来调用。...其实,用的最多的还是用super来调用父类的构造方法。
1 问题 在Java中,&和&&都表示“与”,那他们有什么区别呢? 2 方法 首先给i赋值为0,如果i大于10,并且i++等于1,则输出“错误”和i的值。否则输出“正确”和i的值。...分别用&和&&运行,观察运行结果的不同。...System.out.println("错误"+i); } else{ System.out.println("正确"+i); } } } 3 结语 针对Java...中,&和&&的区别的问题,提出在相同的条件下,比较用&和&&运行的结果有什么不同,通过实验,证明该方法是有效的。...这就是&和&&的区别。本文只研究了&和&&,未来还可以继续研究|和||的区别。
大家好,又见面了,我是你们的朋友全栈君。 java中+=的意义包含两部分,一是”+”,就是通常所说的直接相加,二是改变结果的类型,将计算结果的类型转换为”+=符号左边的类型。
大家好,又见面了,我是你们的朋友全栈君。 JAVA提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。...这个String类提供了不可改变的字符串。 而这个StringBuffer类提供的字符串可以进行修改。 String: 为不可变对象,一旦被创建,就不能修改它的值....对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去....;//error 对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer 中付值的时候可以通过它的append方法. ss.append(“w!”)...; 地址不可更改,长度和内容可改。append()方法是追加,超过预留内存时,内存翻倍。 效率比较:StringBuffer比String高。
我想很多人在学习java的时候,或者其他语言(如:C#,.Net等)都会遇到 &和&& 然而,如果你没有真正的理解他们的意思,这会给你思路上面带来很大的麻烦 在这篇blog中,当你看完了以后,你会发现,...equals(str)){ 19 //do something 20 } 21 } 22 } 我们现在可能有一些模糊不清,现在我们先看看&和&&的电路问题...= null 的时候,接下来才会去执行: !"".equals(str) 如果: str != null为false,那么这个时候,程序是处于短路的情况,则,!""....= null 的结果如何(即true,false),程序都会执行: !""....equal(str) 电路问题总结: 对于:& -- > 不管怎样,都会执行"&"符号左右两边的程序 对于:&& -- > 只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序
1 问题 在Java中,equals是在object类中的方法,在object中equals是用来看看两个参数是否引用的是同一个对象,而 == 可用于判断两个对象的地址是否相等,那么equals和 ==...2 方法 首先,对于基本类型变量(如int, float)来说,equals和 == 的作用是相同的。...字符串是一个引用数据类型,对于引用数据类型来说,"=="比较的是两个对象在内存中的地址,"equals"比较的是两个对象的内容。...例如: 其运行结果为: (1)str==str1的结果为true,说明str与str1的引用对象是相同 (2)str.equals(str1)的结果是true,说明两者的内容相同。...3 结语 针对Java中,equals和==的区别的问题,提出在相同的条件下,比较用equals和==运行的结果的不同,通过实验可以看出,在基本类型变量条件下,equals和==的作用相同,而在字符串类型下
==和equals方法之间的区别是什么?如果在初学Java的时候这个问题不弄清楚,就会导致自己在以后编写代码时出现一些低级的错误。今天就来一起了解一下==和equals方法的区别之处。...而对于非基本数据类型的变量,在一些书籍中称作为 引用类型的变量。比如上面的str1就是引用类型的变量,引用类型的变量存储的并不是 “值”本身,而是于其关联的对象在内存中的地址。...指向了一个对象(很多地方也把str1称作为对象的引用),此时变量str1中存储的是它指向的对象在内存中的存储地址,并不是“值”本身,也就是说并不是直接存储的字符串"hello"。...这里面的引用和C/C++中的指针很类似。 因此在用==对str1和str2进行第一次比较时,得到的结果是false。因此它们分别指向的是不同的对象,也就是说它们实际存储的内存地址不同。 ...该类的源码路径为:C:\Program Files\Java\jdk1.6.0_14的src.zip 的java.lang路径下的Object.java(视个人jdk安装路径而定)。
==和equals方法之间的区别是什么?如果在初学Java的时候这个问题不弄清楚,就会导致自己在以后编写代码时出现一些低级的错误。今天就来一起了解一下==和equals方法的区别之处。...也就是说比如: int n=3; int m=3; 变量n和变量m都是直接存储的”3″这个数值,所以用==比较的时候结果是true。 而对于非基本数据类型的变量,在一些书籍中称作为 引用类型的变量。...(很多地方也把str1称作为对象的引用),此时变量str1中存储的是它指向的对象在内存中的存储地址,并不是“值”本身,也就是说并不是直接存储的字符串”hello”。...这里面的引用和C/C++中的指针很类似。 因此在用==对str1和str2进行第一次比较时,得到的结果是false。因此它们分别指向的是不同的对象,也就是说它们实际存储的内存地址不同。...该类的源码路径为:C:\Program Files\Java\jdk1.6.0_14的src.zip 的java.lang路径下的Object.java(视个人jdk安装路径而定)。
1 什么是类和对象 在Java中,类近似于C语言中的结构体,类是用来对一个实体(对象)来进行描述的,如下: class Demo1 { public int a = 0; private...只不过int和double是java语言自 带的内置类型,而类是用户自定义了一个新的类型,比如我们上述的洗衣街类; 有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。...用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。...,并通过Date类中的成员方法对对象进行设置和打 印,代码整体逻辑非常简单,没有任何问题; 然而,如果我们将setDay中的变量名y,m,d改为year,mouth,day public void setDay...并不会报错; 4 对象的构造和初始化 4.1 如何初始化对象 在Java当中如果在方法内部定义一个局部变量,必须要初始化,否则会编译失败; public static void main(String[
数组 Java 中的数组是一种容器,可以用来存储一组相同类型的元素。数组可以是一维的,也可以是多维的。 一维数组 使用示例 一维数组是指只有一行的数组。...在Java中,定义方式如下: int[] array = new int[5]; 这创建了一个名为 array 的整型数组,该数组有 5 个元素。...总之,在Java中使用数组和集合时,要注意正确的使用方式以及各自的特点和限制,尽量避免出现不必要的性能和安全问题。 集合 Java 中的集合是一组对象的容器,可以用来存储和操作各种类型的数据。...在 Java 中,最常见的 List 实现是 ArrayList 和 LinkedList。 ArrayList ArrayList 是基于数组实现的动态数组,它可以自动扩展容量来容纳新元素。...总结 Java 中提供了丰富的数组和集合类型,可以用来存储和操作各种类型的数据。了解这些类型的区别和使用场景,可以帮助我们更加高效地编写Java程序。
这个问题在 Java 面试的时候大概率会被问到。不是因为这个问题有什么复杂的,只是因为这个地方超出人类认知,你相信吗?...所以 Java 为 String 搞了一个 String Pool,对于程序中,你这样定义的字符 String s1 = "iSharkFly";这个数据是存储在 String Pool 里面的。...因为 String 在 Java 里面被定义为不可变。等下一次你定义一个 s2 的时候,如果是同样的值, s1 和 s2 是相同的,因为都在 String Pool 里面。...,这个对象在 Heap 内存中。...总结equals 和 == 在 Java 面试中经常会遇到。只需要记住的是 == 比较的是内存地址,在对值进行比较的时候并不可靠。在实际编码过程中,这种比较也比较常见的,所以还是有必要了解下这个。
1.前言 在计算机科学中,数据结构是用来组织和存储数据的方式,以便可以高效地访问和修改。栈和队列是两种最基本的数据结构,它们在各种计算过程中都有广泛的应用。...在现实中我们也有类似的场景,那就是子弹的发射,最后装填进去的子弹是最先发射出去。 2.2栈的使用 在Java中栈又是如何使用的呢?有以下这些方法。...2.5栈、虚拟机栈、栈帧的区别 栈(Stack):在Java中,栈是一种数据结构,它遵循后进先出(LIFO)的原则。...Java的集合框架中提供了Stack类,它是以向量(Vector)为基础的一个实现,用于存储和管理数据的先进后出的顺序。...3.2队列的使用 在Java中,Queue是个接口,其底层是通过链表来实现的。
JSON 数据格式:键/值对 JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值,例如...在Java里name相当于对象的属性,而李四则是这个属性的值。...Java中使用JSON 在Java中我们可以通过maven工程的pom.xml配置文件,来配置JSON的jar包,如果是普通的Java工程的话配置也很简单,只需要把JSON的jar包下好后导入即可。...和Java一样在JavaScript中转换成JSON的对象数据也是以键值对来表示,数组是以方括号来表示。 1....解析数组形式的JSON,还是使用eval函数来解析,还是得加上小括号,和Java一样使用数组下标来拿值。 代码示例: ? 运行结果: ?
Java中的ThreadLocal和 InheritableThreadLocal package com.example.core.mydemo.java; /** * output * Thread...string */ public class ThreadLocalTest { public static void main(String[] args) { //主线程中赋值...; stringInheritableThreadLocal.set("InheritableThreadLocal string"); //子线程中分别打印两个变量的信息...主线程中创建了两个变量,类型分别为:ThreadLocal和InheritableThreadLocal 然后在主线程中创建了一个新的线程 在新的线程中,尝试获取他们的值 从打印信息可以看得出来 对于ThreadLocal...获取的值为null,而对于InheritableThreadLocal则能够获取到值
领取专属 10元无门槛券
手把手带您无忧上云