梭罗说:“从圆到圆心有多少条半径,人们的生活方式也应该有这么多。” 同样学习也是如此,学习的渠道有很多种,但能找适合比较适合自己的却不是一件简单的事。比如说有的人喜欢看书,从书中学到一些自己感兴趣的东西。当然有时也迫于无赖,必须得学一些比较枯燥的理论,这就造成了有些人喜欢读书,有些人对读书比较厌倦,大学里的这种现象比较常见。记得中国达人秀的舞台有一个叫卓君的街舞达人,他是通过上网看视频自学的街舞。街舞跳的那么好,悟性是一方面,但坚持练习肯定必不可少。虽然本人没有学过街舞,但是我觉得编程和街舞还是有相似之处的,每一个动作好比是是一个方法或者称函数,那么连贯起来的一整套动作便是我们的程序。尽管动作有好有坏,但只要不断去练习改进(调试、调优),相信你离成功不远了。
运算符
算术运算符:+,-,*,/,%,++,-- 。对于++ -- 只能操作一个变量。++既可以放在变量前(先把变量+1,然后再拿来用),也可以放在变量后(先拿来用,再把变量+1),--也是也是如此。这是比较容易出错的地方。
赋值运算符:【= += -= *= /= %= >>= <<= &= |= ^=】赋值运算符优先级别低于其他的运算符,所以对该运算符往往最后读取。注意等号左边只能是变量,赋值运算符可以与所有的双目运算符结合,就形成了扩展后的赋值运算符。需要注意的:a+=b相当于a=(a的类型)(a+b);//隐式类型转换。注意+=之间不能有空格。赋值表达式的值就是等号右边被赋的值。
位运算符(基于2进制码运算):&、|、~、^(按位异或)、<<、>>、>>>。注意运算时要用补码去算,最终结果要转换为原码。>>:当右移除不尽的情况下,实际得到的整数总是比实际运算的结果值略小。>>>:无符号右移,在左边补0。^:同0异1。
关系运算符:等于运算符【==】、不等于运算符【!=】 、关系运算符【< > <= >= 】
按运算所需变量的个数来分:运算所需变量为一个的运算符叫单目运算符,例如【!,~,()】;运算所需变量为两个的运算符叫做双目运算符;算所需变量为三个的运算符叫三目运算符:【?:】
逻辑运算符(操作数要求只能是boolean值):&&、&(不会短路)、||、|(不会短路)、!、^(只有当两个操作数不同时,才返回true)。【自加的陷进】:int c=1;c=c++;//a).先拿出c来值为1,b).c自加成2,c).把刚取出的1赋给c,c又变回1。
流程控制语句
流程控制语句一共有3种结构:1.顺序结构 如果没有流程控制,计算机总是从上到下,一次执行每一行。2.分支 满足某个条件时,才去执行代码。3, 循环 重复执行一段代码。
分支控制:if/switch 如果省略了花括号,if条件只控制到第一个分号前面。else本身就是条件(在if条件上取反)。建议:即使条件执行体只有一行代码,也保留花括号。当有多个else if语句块时,建议先处理范围小的条件。switch:当等于某个值时,才执行一段代码。每次写完case,在写其它代码之前立即写break; 循环控制:while/do..while/forwhile
do{
//do something...
}while(返回boolean值的表达式)
这个循环与while相比,把循环放前面,先执行一次循环体,如果条件为true,将执行下一次循环。while使用规则:如果省略了花括号,while条件只控制到第一个分号前面。注意只要是循环体,就永远跳到循环条件。
举例说明:
public class LoopTest
{
public static void main(String[] args)
{
int i = 1;
while(i++<5);
{
System.out.println("i="+i);
}
}
}
分析一下,看看结果是不是i=6。
for(初始化语句;返回boolean值得表达式;每次循环体执行完后执行的代码)
{
//do something...
}
初始化语句:可以省略;如果有“初始化语句”,则只有在循环开始之前,会执行一次“初始化语句”。返回boolean值得表达式:可以省略;如果省略,意味着它的值永远是true。每次循环体执行完后执行的代码:可以省略。如果有,将在每次循环体执行之后,开始下一次循环之前执行。【注意】只要两个分号中间的表达式返回true,程序将执行循环体。循环嵌套:把内存循环当成外层循环的一条语句即可。控制循环的关键词:break(完全结束一个循环本身)、continue(停止当前循环体的执行【忽略continue后面的语句】,开始下一次循环体)、return(结束整个方法)。【注意】break、continue后面可以跟一个标号。带标号的break用于结束标号所标识的循环。带标号的continue忽略标号所标识的循环后面的剩下语句。另外注意Java里面没有goto(当做保留字)。
for循环的执行机制如图
再举一例:
public class LoopTest
{
public static void main(String[] args)
{
for(int i=1;i <10;i+=2){
System.out.println("i的值为:"+ (i*=1.2));
}
}
}
思考一下:运行结果会是多少呢? 这里需要注意的是:这里有个隐式类型转换,原型为a*=b相当于a=(a的类型)(a*b);这样我想不难得出结果为:1、3、6、9。
还有一种foreach循环:如使用foreach循环对数组进行遍历
for(元素类型 变量名:数组|集合)
{
//此处即可通过“变量名”依次访问每个数组|集合中的元素。
}
/*注意:在foreach中对循环变量赋值并不会改变原数组(下面会讲到)元素值*/
数组
数组类型(引用类型)(说明:如int[] a 则变量a的数据类型为int[],注意是int[],而不是int)。数组里的每个元素,就相当于一个普通的变量。这里补充一下,引用类型的本质其实就是指针,只是Java对它做了一些封装和异常等检查。定义数组时,不能指定数组的长度。【数组的初始化】:数组变量只是一个引用,必须让它指向有效的内存之后才能使用。数组的初始化分为两种:1.静态初始化:int[] a = new int[]{1,2,3}//只指定数组的元素,让系统来决定数组的长度,推荐使用这种。还有一种写法:int[]
a={1,2,3}; //直接指定数组元素。2,动态初始化:int[] a=new int[3];//只指定数组的长度,让系统来决定数组的元素值,注意如果数组元素是基本类型,那么所有数组元素的默认值都是0/0.0/false/u0000;如果数组元素是引用类型,那么所有数组元素的默认值都是null。
方法栈(所有在方法中声明的变量,都放在相应的方法栈中)
每个方法运行时,系统都会为之建立一个方法栈。栈内存是临时性的内存,方法结束时,方法栈会被立即释放,所以栈不适合存放长有效的数据。java中的所有的对象都放在"堆"内存中,每个JVM只有一个"堆"内存。java不允许直接操作堆内存,只能通过引用来访问,只要JVM不退出,堆内存一直存在。这里补充一下:JVM有一条后台进程:垃圾回收器,它会用一种机制记录 堆内存中“每个对象”是否有引用变量(指针)引用它。如果有,垃圾回收器就不会管它;如果没有,垃圾回收器就会在合适的时候去回收该对象所占的内存。注意:当数组对象的引用变量被销毁之后,数组并不一定会回收(它在堆内存),它不会随着数组变量被回收,数组变量只是一个引用,它只是暂时指向了某块堆内存的地址而已。再说一下二维数组:Java允许初始化数组时只初始化左边的维数(如:int[][]
a = new int[5][];)。二维数组的元素(引用变量,必须要有指向)是一维数组。
举例说明:
public class BinaryArrayTest
{
public static void main(String[] args)
{
//定义二维数组a
int[][] a;
//动态初始化二维数组a
a= new int[5][];
//静态初始化一维数组a[1]
a[1]=new int[]{1,2,3,4,5,6,7,8,9,10};
for(int i=0;i <10;i++){
System.out.print(a[1][i]+"\t");
}
}
}
运行结果如下:
结束语
今天内容比较多,也有很多我们平常做题时容易出错的地方,大家以后一定要注意一下。以上部分内容来源于网络。
明天开始正式开始学习Java面向对象中的三大特征:封装、继承、多态。
分享到:
相关推荐
• 控制语句:if-else、switch、while、do-while等。这些语句用于控制程序的执行流程,根据条件判断执行不同的代码块。...这些语句用于处理程序运行过程中可能出现的异常情况,例如除以零、空指针等。
JAVA前三章之基本数据结构与数组、运算符表达式和语句三章内容的基础归纳和思维导图,计算机专业学生整理复习用,防止丢失而上传,可自行下载帮助理解java入门、java基本数据结构与数组,java运算符表达式和语言三章...
JAVA基本程序语言学习 Java中的数据类型 原生数据类型使用陷阱 运算符 流程控制语句 数组
完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4章 类和对象(共22页).ppt 完整版 Java初级教程 Java语言程序设计 第5章 继承与接口...
•一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度将不可改变。即使把某个数组 元素的数据清空,但它所占的空间依然被保留,依然属于该数组,数组的长度依然不变。 •Java的数组既...
java控制流程语句 数据交换 左(右)移 加密 java控制流程语句 switch语句 季节判断 while循环 1+...+100 do while循环 for循环 打印正直角三角形 转义符号 break continue 函数/方法 函数的定义 return 函数的重载 ...
3.2 Java运算符 36 3.2.1 变量的概念 36 3.2.2 插曲:Java中的语句 37 3.2.3 创建一个变量和变量名的规范 37 3.2.4 Java中的基本运算符和表达式 39 3.2.5 Java中的布尔运算符 43 3.3 基本数据类型运算的难点 ...
3.5 程序控制语句 3.7 习题 第4章 数组 4.1 数组的概念 4.2 一维数组 4.3 多维数组 4.4 习题 第5章 类与对象 5.1 Java的类 5.2 对象的创建与规范 5.3 参数传递 5.4 匿名对象 5.5 习题 第6章 Java类的高级特性 6.1 ...
Java基础[02-Java基础语法1] 2.5 运算符 2.6 语句 2.7 函数 2.8 数组
3.2 Java运算符 36 3.2.1 变量的概念 36 3.2.2 插曲:Java中的语句 37 3.2.3 创建一个变量和变量名的规范 37 3.2.4 Java中的基本运算符和表达式 39 3.2.5 Java中的布尔运算符 43 3.3 基本数据类型运算的难点 ...
跳转控制语句 三元运算符 逻辑运算符 短路逻辑运算符 数组 方法简述 switch语句 if语句 关系运算符 自增自减运算符 赋值运算符 算术运算符 类型转换 Java简述 标识符 变量 数据类型 常量 关键字
java概括 ,Java常用的转义字符 注释类型,变量, Java数据类型 ,运算符 程序流程控制介绍(分支 循环) , 数组 里面包含理论概念 语句 细节及执行流程图 里面内容是通过我在it培训机构及在B站看韩顺平老师的课件...
流程控制:Java中的流程控制语句包括条件语句、循环语句和异常处理语句等,可以控制程序的执行流程。 面向对象:Java中的面向对象编程主要包括类、对象、继承、多态等概念。类是一种抽象的数据类型,对象是类的实例...
目录: 一、Java 概述 ...三、引用数据类型、流程控制语句 和 数组 1. 引用数据类型 2. 流程控制语句 3. 数组 四、方法 1. 引入 2. 语法格式 3. 方法调用 4. 注意事项 5. 方法重载 6. 可变参数列表
getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维数组 traversing.java 遍历一维数组 useStrBuf.java 使用...
Java中的常量 变量的概念与作用 类型转化 函数 算术运算符 程序的流程控制 If 语句的选择结构 Switch语句的选择结构 while循环语句 do-while 循环语句 for循环语句 break与continue语句 数组(array) 第二章 1程序...
完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4章 类和对象(共22页).ppt 完整版 Java初级教程 Java语言程序设计 第5章 继承与接口...
完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4章 类和对象(共22页).ppt 完整版 Java初级教程 Java语言程序设计 第5章 继承与接口...
Java的课程内容一、Java概述; 1.1 **Java** 是一种计算机编程语言 1.2 **Java** 是一种软件...6、控制语句 7、方法 8、数组 四、面向对象 1、类和对象 2、封装 3、继承 4、多态 5、抽象类 6、接口 7、修饰符 8、内部类
第一部分讲解了Java的基本特点和运行原理,Java虚拟机和JDK+JCreator的开发环境,Java程序代码的特点,Java语言中的运算符和表达式,Java的基本数据类型,Java语句流程,如顺序语句、选择语句、循环语句、跳转语句等...