------- android培训、java培训、期待与您交流! ----------
主方法的作用:保证java程序执行。
类名首字母大写,有多个单词构成的,没个单词的首字母都要大写。
1、找不到.java文件。
路径错误或文件名错误
2、错误:找不到或无法加载主类。
jvm(虚拟机)没有找到要运行的类
3、错误:在类中找不到主方法,请将主方法定义为。
类中没有定义主方法或者主方法写错。
4、错误:非法字符。
代码中出现中文字符
配置有classpath,虚拟机找classpath路径,没有配置classpath就默认当前路径为class path路径;
如果classpath=c:\javaapp不加分号,就只访问classpath路径;加分号classpath=c:\javaapp;classpath和当前目录都要访问。一般情况下,是不加分号的。
如果要访问当前目录,在设置classpath时加点:set classpath=.;c:\javaapp 。 .代表前面的路径。(表示先找当前的目录,在找设置的classpath目录)
关键字:被赋予了特殊含义的单词
标识符:在程序中定义的一些名词(数字、字母、_、$,数字不可以开头,不可以是关键字)
注释:对程序进行说明的文字
作用 1、对程序进行说明
2、调试程序
注意:在多行注释里面不要嵌套多行注释;在写代码的时候要写注释
字符:''单引号,里面只能有一个 例:'a'、'1'是,'12'不是
字符串:""双引号,
十进制-->二进制。 除以2取余数
二进制-->十进制。 乘以2的次幂
负数的二进制就是正数的二进制取反+1, 负数的二进制最高位都是1 ,二进制位都是1,对应的十进制 是-1.
为什么要定义变量:用来不断存放同一类型的常量,并可以重复使用。
定义变量的格式:数据类型 变量名 = 初始化值
java语言是强类型(有严格的划分)语言
强制转换
模运算:任何数模运算,结果不是0就是1,可以用来进行开关运算,任何数进行模运算结果都比模数小
逻辑运算符:用来连接boolean型表达式的。
&(与)、|(或)、!(非)、^(异或)
&&(逻辑与)--当左边为false,右边不参与运算
||(逻辑或)--当左边为turn,右边不参与运算
&与&&的区别:
&:两边都参与运算
&&:当左边为false,右边不参与运算
|和||的区别:
|:两边都参与运算
||:当左边为turn,右边不参与运算
位运算:(优点:运算速度快,局限:只能进行二进制的运算)
左移:就是乘以2的次幂运算,移几次就是几次幂。(右边补0)
右移:就是除以2的次幂运算,移几次就是几次幂。(左边补0,最高位判断正(0)负(1)是不变的)
无符号右移:无论原最高位是什么,移动后空位都补零。
对二进制进行&、|、^、~运算(0代表假、1代表真):
&与运算:上下两位全为1(真)时才为1(真),其余都为0(假).可用于获取二进制中的有效位1.
|或运算:上下两位全为0(假)时才为0(假),其余都为1(真)。
^异或:上下两位相同时为0(假),不同时为1(真)。一个数异或另一数两次,结果还是这个数。
~取反:对而进行进行取反操作.
三元运算符是if else的简写格式。
区别:不是所有的if else都能简化,因为所有的三元运算符运算完都必须要有结果,而if else则不然
switch和if的区别?
if可以用于判断数值,也可以判断区间。只要运算结果是boolean类型,都可以进行判断。
switch用于对固定的几个值,进行判断。判断的类型有限。
循环结构:(while、do while 、for)
当对某些语句需要执行很多次时,就使用循环结构。
while与do while的区别?
while先判断后执行,
do while先执行后判断,无论条件是否满足,循环体至少执行一次。
while和fo
for定义的变量是局部变量,
break:使用范围:switch 循环语句,跳出本层循环。
continue:只作用于循环结构,跳出本次循环,进行下一次循环。
break和continue都可以跳出指定循环。
函数:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值//return关键字是用于结束该功能,并将后面的具体结构返回给调用者。
//函数中必须有return语句
//注意:函数的返回值类型是void时,return语句可以省略不写。
//void表示没有返回值的情况
三要素:返回值类型、函数名、参数列表
如何定义一个函数?
函数就是一个功能。
功能需要两部分:1、结果,2、未知内容
明确1:这个功能的结果是什么?
明确2:这个功能需要未知内容是什么?
重载:一个类中出现同名的函数,只要他们的参数个数或者参数类型不同,就称之我函数的重载-overload和返回值的类型无关。
数组:同一类型数据的集合(是一个容器)
元素类型[] 数组名 = new 元素类型[元素个数或数组长度]
例:int [] arr = new int[3];
下标都是从0开始的。
好处:可以存储多个数据,而且可以对数组进行编号,从0开始,操作元素完成可以通过编号(索引)完成
java对内存空间的划分:五部分
栈,堆,方法区,本地方法区,寄存器。
栈内存:存储的都是局部变量。
堆内存:存储的都是实体(对象)。凡是new创建的都是。每一个实体都有一个首地址值。
堆内存的变量都有默认初始化值,不同类型不一样,int-0,double-0.0
当实体不在使用时,就会被垃圾回收机处理。
数组格式二:int [] = {23,34,45}; int [] arr = new int []{23,34,45};
数组长度:arr.length