黑马程序员——java基础--运算符、位操作

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

<pre name="code" class="java">public class test{
    public static void main(String args[]){
          byte b = 3;
          b = b + 2;
          System.out.println(b);
}
}

这段代码输出结果是错的,因为byte占一个字节,没有定义的整数2占4位,b+2相加强制转换成int型,然后赋值给b,但是b只有1位,所以会报错,正确代码:

public class test{
    public static void main(String args[]){
          byte b = 3;
          b = (int)(b + 2);
          System.out.println(b);
}
}

2.System.out.println和System.out.print的差别,前者包含了\n转移字符,自动换行。

java常见的几种转义字符:

\n:换行

\b:退格

\t:制表符,相当于Table

\r:回车,相当于\n

3.运算符

①算术运算符+,-,*,/,%

强调两个运算符:/和%

eg:

int x = 4250;

x = x/1000*1000;

结果不是4250,而是4000。

%运算符不能有小数,并且余的时候结果的符号取决于前面的数。

1%-5 = 1;

-1%5 = -1;

*法运算符使用的时候避免溢出就好。

特别强调一下++和--运算符,a++,++a,b--,--b;

运算符在前面则是先赋值后运算,在后面的话就是先运算后赋值。

②:逻辑运算符& |
^ ! &&||

&&和||又叫做短路运算符

&&、&、||、|运算符的区别:a(&&、&、||、|)b

&&当a为假的时候,b不必判断,||当a 为真的时候,b不必判断,|和&不管a为真还是假b都判断。

③:链接运算符+

ava中+表示链接运算符,当字符串与任何数据连接后,最终都变成了字符串。

④:位运算符<<    >>    ^    >>>   &   |   !

>>有符号右移

>>>无符号右移

位运算符计算效率比较高,当同一个数^同一个数两次这个数值不变,eg7^4^4=7.

两个数交换:

方法一:变量法

temp = a;

a = b;

b = temp;

方法二:

a = a +b;

b = a-b;

a = a-b;

方法三:

a = a ^ b;

b = a^b;

a = a^b;

>>运算符:若为负数,则最高位补的位基本上就是1,当然,由原有最高位决定,所以运算的时候常常使用>>>。

取一个数的最低四位用&,eg:60的最低四位为1100,

就可以用60&15,   0011   1100

0000    1111

------------------

0000    1100

如果是倒数第二个四位,就可以把最低四位取了,然后再&,怎么去呢,当然是右移喽,60 >>> 4 & 15.

0011   1100

>>>
0000   0011

& 0000   1111

-------------------------

0000   0011

这样就ok喽。

时间: 2024-10-11 15:55:01

黑马程序员——java基础--运算符、位操作的相关文章

黑马程序员--java基础学习笔记5

黑马程序员--java基础学习笔记6 一.笔记内容概述: 数组-第二种定义格式.数组-常见操作-遍历-最值-选择排序-冒泡排序-排序位置置换代码提取.数组-排序的性能问题.数组-常见功能-查找-折半查找.进制转换-查表法-整合. 二.常用内容介绍: 1.数组初始化的三种方式: int[] arr = new int[3]; int[] arr = new int[]{1,2,3}; int[] arr = {1,2,3}; 2.查表法: 如果数据中出现了对应关系,而且对应关系的一方是有序的数字编

黑马程序员——Java基础---IO(下)

黑马程序员——Java基础---IO(下) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供了File类.properties类.打印流.序列流等和输入输出相关的类,它们能够帮助我们更好的处理信息.下面将对它们进行简单的介绍. 一.正

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员——java基础——多线程

 黑马程序员--java基础--多线程 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程中的一个独立的控制单元.线程在控制着进程的执行.一个进程中至少有一个线程. 一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序,每个线程在栈区中都有自己的执行空间,自己的方法区.自己的变量.

黑马程序员——java基础---IO(input output)流字符流

黑马程序员——java基础---IO(input output)流字符流 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- io(input output)流特点: 1,io流用来处理数据之间的传输 2,java对数据的操作是通过流的方式: 3,java用于操作流的对象都在io包中: 4,流按操作数据分为两种:字节流和字符流: 5,流按流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象

黑马程序员——java基础——反射

 黑马程序员--java基础--反射 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 反射 其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员. 反射就是把Java类中的各种成分映射成相应的java类. 简单说:反射技术可以对一个类进行解剖. 反射的基石-->Class类 1.java中的类是用来描述一类事物的共性,该类事物有什么属性,没有什么属性

黑马程序员——java基础——内部类

 黑马程序员--java基础--内部类 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 内部类 如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象.这时,为了方便设计和访问,直接将A类定义在B类中.就可以了.A类就称为内部类.内部类可以直接访问外部类中的成员.而外部类想要访问内部类,必须要建立内部类的对象. 内部类的访问规则 1,内部类可以直接访问外部类中的成员,包括私有. 之所以可以直接访问外部类中的成员,是因为内部类中持有

黑马程序员——java基础——集合(Collection)

 黑马程序员--java基础--集合(Collection) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 集合框架的构成及分类,如下图: 1.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 2.数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 3.

黑马程序员——Java基础篇之对象归要

1.static关键字 1.1.static可以修饰成员变量,成员方法,还有类(其中这里的类是内部类) 1.2.static修饰的部分会随着类的加载而加载: 加载过程:当JVM执行static修饰的代码时,会在内存的共享区给static部分开辟一个空间,供该类持有,static部分不是某个对象的部分,而是该类共有的,所以当一个函数会被多个对象调用时,最好定义成static,这样比较节省空间. 1.3.静态方法只能访问静态成员 原因:如果静态方法中调用了非静态的变量,那么由于静态方法是随着类的加载