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
前言 我们都知道对于有符号数据类型,二进制最左端的数字为符号位,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
1 问题 在Java中,&和&&都表示“与”,那他们有什么区别呢? 2 方法 首先给i赋值为0,如果i大于10,并且i++等于1,则输出“错误”和i的值。否则输出“正确”和i的值。...分别用&和&&运行,观察运行结果的不同。...System.out.println("错误"+i); } else{ System.out.println("正确"+i); } } } 3 结语 针对Java...中,&和&&的区别的问题,提出在相同的条件下,比较用&和&&运行的结果有什么不同,通过实验,证明该方法是有效的。...这就是&和&&的区别。本文只研究了&和&&,未来还可以继续研究|和||的区别。
大家好,又见面了,我是你们的朋友全栈君。 java中+=的意义包含两部分,一是”+”,就是通常所说的直接相加,二是改变结果的类型,将计算结果的类型转换为”+=符号左边的类型。
一、使用==判断两个变量是否相等 (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来调用父类的构造方法。
大家好,又见面了,我是你们的朋友全栈君。 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)后,才会执行符号"&&"右边的程序
java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。...2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。...JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,...Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。 ...如果两个对象根据equals()方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果。
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则能够获取到值
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 中的Comparator 接口进行了说明,今天我们来看看另一个和它非常类似的接口 java.lang.Comparable 。 2....Comparable Comparable 接口同样只有一个抽象方法 int compareTo(T o),其规则和Comparator 的int compare(T o1, T o2)类似。...虽然它也可以看作一个函数式接口,但是 Java 8 中并没有将它标记为函数式接口。说明设计者并不希望开发者将它作为函数式接口来使用。不然就偏离了设计意图,就像下面输入一个字符串返回该字符串的长度。...3.Comparator vs Comparable Comparator 和 Comparable 很相似,但是它们也是有一些不一样的地方的,主要表现在: 视角不同,Comparable 通常是对象自带的比较属性而...一个位于 java.lang 包下 ,一个在 java.util 下,这从侧面也证明了第一条。 4.
==和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中,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和==的作用相同,而在字符串类型下
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[
领取专属 10元无门槛券
手把手带您无忧上云