java 命令 : javadoc -d 文件存放地址 -author -version demo.java
编译 :javac demo
示例代码 :`javadoc -d d:\\adain_java_temp -author -version Comment02.java`
数值型-整数类型 :byte(1),short(2),int(4),long(8)
数值型-小数型(默认为double) : float(4) 一般定义加F/f,double(8) e2=100**2 , E-2=/100**2 注意事项:double a = 8.1 / 3 = 2.6999999999999999 2个运算的字符型不能进行比较判断! 正确做法(Math.abs(a-b)<0.000001)差值绝对值 判断
字符型 : char(2) 存放单个字符'a' ''包围 整数值
布尔型 : boolean(1)存放true false
类 :class
接口 :interface
数据 :【】
1字节 拥有8bit(最小) 例如: long(8)拥有 8 * 8 =64 bit
ASCLL(ASCLL 编码表 ) 1个字节表示,128个字符,实际上一个字节有256个字符,只用128个字符
Unicode(Unicode编码表)固定 字母和汉字统一都占用2个字节 浪费空间
utf-8(编码表) 字母1个字节 汉字3个字节
gbk(可以表示汉字 范围广 字母1个字节,汉字2个字节)
gb2312(可以表示汉字 gb2312<gbk)
big5(繁体中文,台湾,香港)
java程序进行赋值或者运算的时候,精度小的自动转换为精度大的数据类型
char-int-long-float-double
byte-short-int-long-float-double
注意:
1. 进行混合运算时,自动转换为容量最大的那种数据类型,如何进行计算
2. (byte和short)和char之间不会相互自动转换
3. 当把数给byte时,首先(1)判断是否在范围内,如果是就可以,其次是按照低到高精度规则 例如 byte a=10 对的 (-128-128)之间 在范围之中
4. byte,short,char 他们三者计算时,在 计算 参与运算 时首先转换为int类型
5. char可以存int的常量值,不能存int的变量值,造成强转 char c = 100 可以
6. 数据强转会造成: 1. 数据精度丢失 2. 数据溢出
求余的本质是 a % b =a - a / b * b 当a为小数,转为(int)
例如 10 % -3 = 10 - 10 / (-3) * (-3) = 1
看第一个数的正负号,第一为正 余数为正 则反之
i++ ,++i 独立使用时,等于i = i + 1;
++i i先自增,然后变量赋值
i++ i先变量赋值,语句完成后,变量自增
a + = b; a = a + b;
注意:复合赋值运算符会进行类型转换 例如 byte a=3; a+=3;是可以的 a=(byte) a+3; a=a+3; 错误的 a++
从低位右边开始,将每个位上的数提取出来,乘2的(位数-1)次方,然后求和
例如:0b1011=1*2^(1-1)+1*2^(2-1)+0+1*2^(4-1)=1+2+8=11
从低位右边开始,将每个位上的数提取出来,乘8的(位数-1)次方,然后求和
例如: 0234=4*8^(1-1)+3*8^(2-1)+2*8^(3-1)=4+24+128=156
从低位右边开始,将每个位上的数提取出来,乘16的(位数-1)次方,然后求和
例如 0x23A=10*16^(1-1)+3*16^(2-1)+2*16^(3-1)=10+48+512=570
不断除以二,直到商为0,然后将余数倒过来,就是二进制
不断除以八,直到商为0,然后将余数倒过来,就是八进制
不断除以十六,直到商为0,然后将余数倒过来,就是十六进制
从低位开始,将二进制每3位一组,转成对应的八进制数即可
从低位开始,将二进制每4位一组,转成对应的十六进制数即可
将八进制数每一位,转成对应的一个三位的二进制数即可
将八进制数每一位,转成对应的一个四位的二进制数即可
注意:运算的时候取补码,返回结果取原码
正数的补码,原码,反码一样,三码合一
负数的补码为反码+1,反码为补码-1
穿透现象
数组赋值是地址引用赋值
内存分析法
数组拷贝,(值拷贝)int[] ar1 = new int[ae2.length] ,new一个新的引用 堆内存
内存分析图
注意:
int[][] array = new int[3][]; 只开一个一维数组大小 array[i] = new int[i+1]; 通过一维数组给第二个数组开空间
二维数组的注意:
练习demo代码:
代码:
`import java.util.Scanner; public class demoTest{ public static void main(String[] args) { // System.out.println("请输入月份:"); // Scanner scanner1 = new Scanner(System.in); // int month = scanner1.nextInt(); // System.out.println("请输入年龄:"); // Scanner scanner2 = new Scanner(System.in); // int age = scanner2.nextInt(); // if(4 < month && month < 10){ // if(18 <= age && age <= 60){ // System.out.println("票价为60!"); // }else if (age < 18) { // System.out.println("票价为半价!"); // }else if (age > 60) { // System.out.println("票价为1/3!"); // }else { // System.out.println("年龄有问题!"); // } // }else if ((0< month && month < 5) ||( 9 < month && month < 13)) { // if(18 <= age && age <= 60){ // System.out.println("票价为40!"); // }else { // System.out.println("票价为20!"); // } // }else { // System.out.println("你输入的年份不对哦!"); // }
// Scanner scanner = new Scanner(System.in);
// System.out.println("请输入a-e");
// char a = scanner.next().charAt(0);
// switch(a){
// case 'a':
// System.out.println("A");
// break;
// case 'b':
// System.out.println("B");
// break;
// case 'c':
// System.out.println("C");
// break;
// case 'd':
// System.out.println("D");
// break;
// case 'e':
// System.out.println("E");
// break;
// default:
// System.out.println("other");
// }
// Scanner scanner = new Scanner(System.in);
// System.out.println("请输入成绩:");
// Double score = scanner.nextDouble();
// if( 0 <= score && score <= 100){
// switch((int)(score / 60)){
// case 1:
// System.out.println("成绩合格!");
// break;
// case 0:
// System.out.println("成绩不合格!");
// break;
// }
// }else {
// System.out.println("输入范围不对!");
// }
// Scanner scanner = new Scanner(System.in);
// System.out.println("请输入月份:");
// int month = scanner.nextInt();
// switch(month){
// case 3:
// case 4:
// case 5:
// System.out.println("大约在春季!");
// break;
// case 6:
// case 7:
// case 8:
// System.out.println("大约在夏季!");
// break;
// case 9:
// case 10:
// case 11:
// System.out.println("大约在秋季!");
// break;
// case 12:
// case 1:
// case 2:
// System.out.println("大约在冬季!");
// break;
// default:
// System.out.println("输入的格式不对!(1-12)");
// break;
// }
// int count = 0;
// int sum = 0;
// int condition = 100;
// int multiple = 9;
// int i = 1;
// for ( ; i <= condition ; i++ ) {
// if(i % multiple == 0){
// count++;
// sum+=i;
// System.out.println(i);
// }
// }
// System.out.println("数量:"+count+"总和:"+sum);
// int i=0;
// int j=10;
// for (;i<=j ;i++) {
// System.out.println(i+"+"+(j-i)+"="+j);
// }
// System.out.println(i);
// int i = 0;
// while (i <= 10) {
// System.out.println("jerk is 666");
// i++;
// }
// System.out.println(i);
// int i = 1;
// int j = 100;
// int multiple = 3;
// while (i <= j) {
// if(i % multiple == 0){
// System.out.println(i);
// }
// i++;
// }
// int i = 40;
// int j = 200;
// int multiple = 2;
// while (i <= j) {
// if(i % multiple == 0){
// System.out.println(i);
// }
// i++;
// }
// int i = 1;
// int sum = 0;
// int count = 0;
// char s;
// Scanner scanner = new Scanner(System.in);
// do{
// System.out.println("你还钱么?(y/n))");
// s = scanner.next().charAt(0);
// if(s != 'y'){
// System.out.println("老韩给你五连鞭!");
// }
// // System.out.println(i);
// // sum+=i;
// // if(i % 5 == 0 && i % 3 != 0){
// // count++;
// // }
// // i++;
// }while(s != 'y');
// // System.out.println(sum);
// // System.out.println(count);
// Scanner scanner=new Scanner(System.in);
// double sum = 0;
// double total = 0;
// for (int i = 1; i <= 3 ; i++ ) {
// for (int j = 1; j <= 5 ; j++ ) {
// System.out.println("请输入第"+j+"个成绩:");
// double score = scanner.nextDouble();
// sum+=score;
// }
// System.out.println("第"+i+"组的平均分是:"+sum/5);
// total+=sum;
// }
// System.out.println("所有班级的平均分是:"+total/15);
// int count = 0;
// Double score;
// for (int i = 1; i <= 3 ; i++ ) {
// System.out.println("第"+i+"班:\n");
// for (int j = 1; j <= 5 ; j++ ) {
// System.out.println("请输入第"+j+"个成绩:");
// score = scanner.nextDouble();
// if(score > 60){
// count++;
// }
// }
// }
// System.out.println("三个班的及格人数为"+count);
// for ( int i = 1 ; i <= 9 ; i++ ) {
// for (int j = 1 ; j <= i ; j++ ) {
// System.out.print(j+"*"+i+"="+(j*i)+"\t");
// }
// System.out.println("\n");
// }
// for ( int i = 1 ; i <= 9 ; i++ ) {
// for (int j = i ; j <= 9 ; j++ ) {
// System.out.println(i+"*"+j+"="+(j*i));
// }
// System.out.println("\t");
// }
// int layers = 50; //行数
// for (int i = 1; i <= layers ; i++ ) {
// //打印空格
// for (int k = 1; k <= layers-i ; k++) {
// System.out.print(" ");
// }
// //打印*号
// for (int j =1; j <= 2*i-1 ; j++) {
// //中间为空,两边为*
// if(j == 1 || j == 2*i-1){
// System.out.print("*");
// }else {
// if(i == layers ){
// System.out.print("*");
// }else {
// System.out.print(" ");
// }
// }
// }
// System.out.print("\n");
// }
//
// int layers = 20; //行数
// for (int i = 1; i <= layers ; i++ ) {
// //打印空格
// for (int k = 1; k <= layers-i ; k++) {
// System.out.print(" ");
// }
// //打印*号
// for (int j =1; j <= 2*i-1 ; j++) {
// //中间为空,两边为*
// if(j == 1 || j == 2*i-1){
// System.out.print("*");
// }else {
// // if(i == layers ){
// // System.out.print("*");
// // }else {
// System.out.print(" ");
// // }
// }
// }
// System.out.print("\n");
// }
// for (int i = 1; i <= layers ; i++ ) {
// //打印空格
// for (int k = 1; k <= i-1 ; k++) {
// System.out.print(" ");
// }
// //打印*号
// for (int j =1; j <= 2*(layers-i)+1 ; j++) {
// //中间为空,两边为*
// if(j == 1 || j == 2*(layers-i)+1){
// System.out.print("*");
// }else {
// // if(i == layers ){
// // System.out.print("*");
// // }else {
// System.out.print(" ");
// // }
// }
// }
// System.out.print("\n");
// }
// int sum = 0;
// for ( int i = 1 ; i <= 100 ; i++ ) {
// sum+=i;
// if(sum >= 20 )
// {
// break;
// }
// System.out.println(sum);
// }
//
// Scanner scanner = new Scanner(System.in);
// for (int i = 1; i <= 3 ;i++ ) {
// System.out.println("亲输入用户名:");
// char name = scanner.next().charAt(0);
// System.out.println("亲输入密码:");
// int psd = scanner.nextInt();
// if(name == '丁' && psd == 123456){
// break;
// }else {
// System.out.println("你还有"+(3-i)+"次机会!");
// }
// }
// int i = 1;
// while ( i <= 4) {
// i++;
// if( i == 2){
// continue;
// }
// System.out.println("i="+i);
// }
// for (int i = 1 ; i <= 9 ; i++ ) {
// for (int j =1 ; j <= i ; j++ ) {
// System.out.print(j+"*"+i+"="+(j*i)+"\t");
// }
// System.out.print("\n");
// }
// int money = 100000;
// int count = 0;
// while(true){
// if(money > 50000){
// money = money - money * 5 / 100;
// System.out.println(money);
// count++;
// }else if(money >= 1000 && money <= 50000){
// money = money - 1000;
// System.out.println(money);
// count++;
// }else {
// break;
// }
// }
// System.out.println(count);
// result:62
// System.out.println("请输入一个整数:");
// Scanner scanner = new Scanner(System.in);
// int a = scanner.nextInt();
// if(a > 0 ){
// a = 2;
// }
// if(a == 0){
// a = 1;
// }
// if(a < 0){
// a = 0;
// }
// switch(a){
// case 2:
// System.out.println("大于0!");
// break;
// case 1:
// System.out.println("等于0!");
// break;
// case 0:
// System.out.println("小于0!");
// break;
// default:
// System.out.println("程序出错!");
// }
// System.out.println("请输入一个年份:");
// Scanner scanner = new Scanner(System.in);
// int a = scanner.nextInt();
// if((a % 100 !=0 && a % 4 == 0) || a % 400 ==0){
// System.out.println(a+"是闰年!");
// }else {
// System.out.println(a+"不是闰年!");
// }
// System.out.println("请输入一个三位整数:");
// Scanner scanner = new Scanner(System.in);
// int a = scanner.nextInt();
// int b = a / 100;
// int c = a / 10 % 10;
// int d = a % 10;
// if((b * b * b) + (c * c * c) + (d * d * d) == a){
// System.out.println(a+"是水仙花数!");
// }else {
// System.out.println(a+"不是水仙花数!");
// }
// int m = 0,n = 3;
// if (m > 0) {
// if(n > 2)
// System.out.println("欧克1");
// else
// System.out.println("欧克2");
// }
// int count = 0;
// for (int i = 0;i <= 100 ; i++ ) {
// if(i % 5 != 0){
// count++;
// System.out.print(i+"\t");
// if (count % 5 ==0 ) {
// System.out.println("\n");
// }
// }
// }
// char a = 'a';
// char b = 'Z';
// for (int i = 0;i < 26 ;i++ ) {
// System.out.print(a+" ");
// a++;
// }
// System.out.println("");
// for (int i = 0;i < 26 ;i++ ) {
// System.out.print(b+" ");
// b--;
// }
// double a = 1;
// double sum = 0;
// for (int i = 1; i <= 100 ; i++ ) {
// if(i == 1){
// sum = 1;
// continue;
// }
// if( i % 2 != 0 && i > 1){
// sum += (a / i);
// }else {
// sum -= (a / i);
// }
// }
// System.out.println(sum);
// 0.688172179310195
// int sum = 0;
// int total = 0;
// for (int i = 1;i <= 100 ; i++ ) {
// sum += i;
// total+=sum;
// System.out.println(sum);
// }
// System.out.println(total);
// 171700
// char[] area = new char[26];
// for (int i = 0; i < 26 ; i++ ) {
// area[i] = (char)('A' + i);
// System.out.print(area[i]+" ");
// }
// int[] area = {4,-1,9,10,23,1,9999};
// int max = 0;
// int maxId = 0;
// for (int i = 0;i < area.length ; i++ ) {
// if(area[i] >= max){
// max = area[i];
// maxId = i;
// }
// }
// System.out.println("最大值:"+max);
// System.out.println("最大值id:"+maxId);
//
// int[] area = {4,-1,9,10,23,1,9999};
// int sum = 0;
// for (int i = 0 ; i < area.length ; i++ ) {
// sum += area[i];
// }
// System.out.println("数组的和为:"+sum);
// System.out.println("数组的平均值:"+sum/area.length);
//
//
// int[] array = {11,22,33,44,55,66,77};
// int a = 0 ;
// for (int i = 0;i < array.length / 2 ;i++ ) {
// a = array[i];
// array[i] = array[array.length - 1 - i];
// array[array.length - 1 - i] = a;
// }
// for (int i = 0; i < array.length; i++) {
// System.out.print(array[i]+" ");
// }
// int[] array = {11,22,33,44,55,66,77};
// int[] area = new int[array.length];
// for (int i = 0; i < array.length ; i++) {
// area[i] = array[array.length - 1 -i];
// }
// array = area;//以前的堆内存被当作垃圾回收
// for (int i = 0; i < array.length; i++) {
// System.out.print(array[i]+" ");
// }
// int[] arr = {1,2,3};
// int[] area;
// Scanner scanner =new Scanner(System.in);
// while(true){
// System.out.println("输入一个整数添加到数组里面!");
// int a = scanner.nextInt();
// area = new int[arr.length+1];
// for (int j = 0; j <arr.length;j++ ) {
// area[j] = arr[j];
// }
// area[arr.length+1-1] = a;
// arr = area;
// System.out.println("添加成功!是否继续添加?(y/n)");
// String flag = scanner.next();
// // if(flag != "y" && flag != "n"){
// // System.out.println("请输入正确指令!");
// // }
// if("n".equals(flag)){
// break;
// }
// }
// for (int isd = 0; isd < arr.length; isd++) {
// System.out.print(arr[isd]+" ");
// }
// int[] array = {1,2,3,4,5};
// int[] area;
// Scanner scanner = new Scanner(System.in);
// while(true){
// area = new int[array.length-1];
// for (int i = 0; i < array.length-1; i++ ) {
// area[i] = array[i];
// }
// System.out.println("缩减了一个了!");
// array = area;
// for (int isd = 0; isd < array.length; isd++) {
// System.out.print(array[isd]+" ");
// }
// System.out.println("还要缩减么?(y/n)");
// char r = scanner.next().charAt(0);
// if(array.length == 1){
// System.out.println("只剩下最后一个了!退出去了!");
// break;
// }
// if(r == 'n'){
// System.out.println("退出去了!");
// break;
// }
// }
//小冒泡
// int[] array = {24,69,80,57,13,99,0};
// int temp;
// for (int i = 0; i < array.length-1 ; i++) {
// for (int j = 0;j <array.length - i -1; j++) {
// if(array[j] >= array[j+1]){
// temp = array[j];
// array[j] = array[j+1];
// array[j+1] = temp;
// }
// }
// }
// for (int isd = 0; isd < array.length; isd++) {
// System.out.print(array[isd]+" ");
// }
//
// int[][] array = new int[3][];
// for (int i = 0; i < array.length; i++) {
// //开空间给第二个数组!
// array[i] = new int[i+1];
// for (int j = 0; j < array[i].length; j++ ) {
// array[i][j] = i+1;
// }
// }
// for (int i = 0; i < array.length ; i++) {
// for (int j = 0; j < array[i].length; j++ ) {
// System.out.print(array[i][j]+" ");
// }
// System.out.println("\n");
// }
// int arr[][] ={{4,6},{1,4,5,7},{-2}};
// int sum = 0;
// for (int i = 0; i < arr.length ; i++ ) {
// for (int j = 0;j < arr[i].length ;j++ ) {
// sum+=arr[i][j];
// }
// }
// System.out.println(sum);
//杨辉三角
// int[][] array =new int[10][];
// for (int i = 0 ; i < array.length ; i++ ) {
// array[i] = new int[i+1];
// for (int j = 0; j < array[i].length; j++ ) {
// array[i][array[i].length-1] = 1 ;
// array[i][0] = 1 ;
// if( i >= 2 && (j > 0 && j < array[i].length-1)){
// array[i][j] = array[i-1][j] + array[i-1][j-1];
// }
// }
// }
// for (int i = 0; i < array.length ; i++) {
// for (int j = 0; j < array[i].length; j++ ) {
// System.out.print(array[i][j]+" ");
// }
// System.out.println("\n");
// }
//
// int[] array = {10,12,45,90};
// int[] area;
// int temp = 0;
// Scanner scanner = new Scanner(System.in);
// while(true){
// System.out.println("请输入一个整数插入到数组中!");
// area = new int[array.length + 1];
// int dmeo = scanner.nextInt();
// //最后一个插入进最后一位
// area[array.length] = dmeo;
// //赋值
// for (int i = 0; i < array.length ; i++ ) {
// area[i] = array[i];
// }
// //内存转移
// array = area;
// //排序
// for ( int i = 0; i < array.length - 1; i++ ) {
// for (int j = 0; j < array.length - 1 - i; j++ ) {
// if(array[j] >= array[j+1]){
// temp = array[j];
// array[j] = array[j+1];
// array[j+1] = temp;
// }
// }
// }
// System.out.println("插入成功!");
// //遍历
// for (int i = 0; i < array.length ; i++ ) {
// System.out.print(array[i]+" ");
// }
// System.out.println("继续插入一个整数插入到数组中吗?(y/n)");
// char flag = scanner.next().charAt(0);
// if(flag == 'n'){
// break;
// }
// }
// int[] array = new int[10];
// int sum = 0;
// int max = 0;
// int flag = 0;
// int flags = 0;
// Scanner scanner = new Scanner(System.in);
// for (int i = 0; i < array.length; i++ ) {
// System.out.println("请输入第"+(i+1)+"个整数!");
// array[i] = scanner.nextInt();
// }
// System.out.println();
// for ( int i = 0; i < array.length ; i++ ) {
// System.out.println("倒序数组:" + array[array.length-1-i]);
// sum+=array[i];
// if(array[i] >= max){
// max = array[i];
// flag = i;
// }
// if(array[i] == 8){
// flags = 1;
// }
// }
// System.out.println("平均值:"+ sum / array.length);
// System.out.println("最大值为:"+max+"它的下标为:"+flag);
// if(flags == 1){
// System.out.println("含有8!");
// }else {
// System.out.println("不含有8!");
// }
我亦无他 唯手熟尔 !!!
}
} `
评论