四
1.基本运算符
在java当中,使用运算符+、-、*、/ 表示加减乘除,当参与 / 运算的两个操作数都是整数的时候,表示整数除法;否则表示浮点数。整数的求余操作用 % 表示。、
2.数值之间的转化
3.强制类型转换
在上面我们可以看到,在必要的时候,int类型的值将会自动的转化为double类型。但另一方面,有时候也需要将double转化为int.。在java当中允许这种数值之间的类型转化。当然也会有以一些数据丢失。在这样情况之下,需要通过强制类型转换实现这个操作,强制类型的语法格式是通过()当中给出的想要转化的目标类型。
4.结合赋值和运算符
可以在赋值当中使用二元运算,这是一种很简单的简写形式,例如、
x += 4
等价于
x = x + 4
5.自增和自减运算符
++m:先加再赋值,m++;先赋值再加
自增和自减的过程就是一个值交换和值存储的流程,内存中值存储和值交换不在一个地方,值交换会产生一个临时副本空间(备份)
m++中是先把临时的副本赋值给m本身,再让备份自增
++m:是先自增临时副本空间后,在讲副本传给a本身
6.关系和boolean运算符
①:检测相等性: ==
②:检测不等:!=
③:最后,还有经常使用的、=
比较两个基础数据类型,返回值为true或者flase
④:java使用&&表示逻辑”与“运算符,使用||表示”或“运算符,
⑤:三目运算符:condition?expression1:expression2
六、字符串
字符串常量池的概念
字符串常量池是java的一项技术,从字面意思理解就是把经常用到的数据存放到某一内存当中,避免频繁的数据创建和销毁,实现数据的共享,提高系统性能。
虚拟机首先判断字符串常量池中查找该字符串是否已经存在,如果存在则返回该引用,如果不存在则会在字符串常量池当中创建该字符串对象,然后到字符串常量池当中去注册该字符串。
所以s1和s2指向的是同一对象
当我们用new关键字创建字符串对象时,会先在我们的堆内存当中开辟一段内存空间,然后该内存空间会用来存储我们在字符串常量池当中的数据地址。
在java当中,String提供的方法,一般都是重新new一个对象。
子串
String类的SubString()方法可以从一个较大的子串提取出一个字符串,例如:
String greeting ="Hello world"; String s = greeting.substring(0,7); System.out.println(s);
输出:
Hello w
==和equals的区别
引用数据类型和基本数据类型的区别
1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
他们之间的比较,应用双等号(==),比较的是他们的值。
2.引用数据类型:当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。例如,string类的equals方法
1.首先比较的是两个字符串的地址是否相同,如果相同返回true.
2.如果字符串地址不相同,那么首先会判断要比较的是否属于String类型,如果是,然后在比较里边的内容是否相同。
String 常见的一些方法
1.判断String的长度length()
2.用charAt()获取到Sting当中的指定的值
3.equals()方法来判断值是够相等
4.subString截取子串
5.contains() 判断是否包含目标串
七、java输入
八、对象与类
一、什么是面向对象编程?
面向对象的编程产生的历史原因:由于面向过程编程在构造系统时,无法解决重用,维护,扩展的问题,而且逻辑过于复杂,代码晦涩难懂,因此,人们开始想能不能让计算机直接模拟现实的环境,以人类解决问题的方法,思路,习惯和步骤来设计相应的应用程序。于是,面向对象的编程思想就产生了。
面向对象的编程的主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为。对象作为程序的基本单位,将程序和数据封装其中,以提高程序的重用性,灵活性和可扩展性。类是创建对象的模板,一个类可以创建多个对象。对象是类的实例化。
二、什么是类,什么是对象,类与对象的关系是什么?
类是抽象的,不占用堆内存空间;而对象具体的,占用堆内存空间。
类是对象的模板,我们可以将类想象成制作小甜饼的切割机,将对象想象成小甜饼,由类构造对象的过程叫做类的实例化。
三、封装
封装是java面向对象的一种特性,从形式上来看封装不过就是将数据和方法组合在一起,并对数据的访问者隐藏了数据的实现方式。在对象当中的数据称为实例域,操作数据的过程称为方法。
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
从上边的例子当中我们可以看出,name是一个只读域,name的值一旦在构造器当中设置完毕,就没有任何一个方法可以对他进行修改,这样确保name域不会受到外部的破坏。
在有些时候,需要获得或者设置实例域的值。因此,应该提供下面三项内容
- 一个私有的实例域
- 一个公有的域访问器方法
- 一个公有的域更改器方法
九、构造器
一.普通方法
java中的构造方法是一种特殊的方法,用于初始化对象。java构造函数在对象创建时被调用。它构造时,即提供对象的数据。
二.构造器的特征
1.构造器要与类同名
2.当我们new对象时,new 后边的方法就代表着我们的构造函数
3.我们的每一个类当中都有一个默认的不显示的无参构造器,当我们这个类当中写一个构造器的时候,我们默认调用的就是我们显示的构造器
4.我们的构造器是没有返回值的,如果有返回值,即便你的方法名和类名相同那么也不是构造函数
5.我们的类当中是有一个或一个以上的构造函数