---------android培训、java培训、期待与您交流! ----------
一,常见错误
1.path和classpath的区别
path:设置环境变量,用于可执行文件
classpath:设置环境变量,用于类的运行文件
2.基本数据的转换
类型提升:要自动类型提升,其实很简单,我们平时在练习的时候也经常用,例:s.o.p("abc"+2),这里的2会自动提升为字符串,自动类型提升是遵循一个规则的
强制转换:是将数据类型强制转换成自己需要的类型,例:byte b=3; b=(byte)(b+4),这样做有一个最大的缺陷是会丢失精度,其次还有float类型和double类型,如果声明了float f=1.1;那么1.1后面必须跟上一个f,用来区分是float型还是double型,如果不写会编译失败;如果float f=1,这个值是一个整数,这样赋值是可以的
3.运算符
算术运算符:已知int a=1,b; 说明 b=a++和b=++a的区别,b=a++原理是:a先将值赋予b,然后a再自加,此结果是a=2,b=1;而b=++a原理则是:a先自加,再把自加后的值赋予b,结果是a=2 b=2;
转义字符:"\" ; char ch="我"; 表示可以装一个中文
位运算符:<<左位移 >>右位移 >>>也是右位移 &与 |或 ^异或(一个数异或另一个数两次返回的还是第一个数,例:3^5^5==>返回的还是3),位运算是处理数据速率最快的一种算法
for嵌套:打印三角型应注意的是内循环的条件;break 、continue、return、throw后都不能直接跟任何语句,因为当他们单独存在时,已经标示着功能结束了,也就是后面的代码都不会再执行
获取数组中最值:原理是,定义一个变量(这个变量可以是数组中的第一个元素,也可以是数组的第0个索引),循环判断数组中的元素,如果取出来的数据比当前的变量大,就用该变量记录着它。
main函数:
/**
* 获取最值的原理
*/
int[] arr={1,2,44,546,78,8,34};
int max=0;
for(int i=1;i<arr.length;i++){
if(arr[i]>arr[max]){
max=i;
}
}
System.out.println(arr[max]);
4.数组的定义方式
// int[] arr=new int[5];//算常用吧
// int arr1[]=new int[]{};//如果中括号写在变量arr1后面,那么必须指定数组长度或带大括号
// int[] arr2={};//没有数据
// System.out.println(arr2[0]);//运行时会出现异常
5.二维数组
int[][] arr=new int[5][6];//后面的6不指定编译会失败
int[] x,y[];这个表达式等价于int[] x和int[] y[]
6.进制转换(查表法的主要功能):这里容易忘记的是最后的 num=num>>>count; //得到有效位
class ChaBiaoDemo
{
public void show(int num,int base,int count){
if(num==0){//为0直接返回了
System.out.println(0);
return;
}
char[] ch={ '0','1','2','3', '4','5','6','7', '8','9','A','B', 'C','D','E','F' };//建表
char[] arr=new char[32];
int pos=arr.length;//记录存储数据的索引
while(num!=0){
int temp=num&base;
arr[--pos]=ch[temp];
num=num>>>count;
}
for(int i=pos;i<arr.length;i++){
System.out.print(arr[i]);
}
}
7.变量
成员变量:存在堆内存中,作用范围再整个类有效
局部变量:存在栈内存中,在区间有效
---------android培训、java培训、期待与您交流! ----------