-
static final double PI=3.14;//使用常量时记得声明变量类型和变量名大写;
-
进制 二进制0b 十进制 八进制0 十六进制0x 所有的字符本质还是数字;
位运算符 & | ^ ~
* A = 0011 1100
* B = 0000 1101
*----------------------------
* A&B = 0000 1100 & : 都为1才为1,否则为0
* A|B = 0011 1101 | : 都为0才为0,否则为1
* A^B = 0011 0001 ^ : 两个相同则为0,否则为1异或运算符
* ~B =1111 0010 ~ : 与B相反
*
* 效率极高!!!!
* << *2 左移位符 逢二进一
* >> /2 右移位符编码 Unicode 表:(97=a 65=A) 2字节 0-65536
-
float 有限 离散 舍入误差 大约 接近但不等于 * 所以,最好避免使用浮点数进行比较 */ float f=0.1f; //0.1 double d=1.0/10; //0.1 System.out.println(f==d); //false float d1=235626532f; float d2=d1+1; System.out.println(d1==d2); //true&&&&
char c=‘a’;
int d=c+1;
System.out.println(d);// 98
System.out.println((char)d);// b
//String字符串在前时,后面的数会当成字符串拼接
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30 -
-
养成良好习惯,shift+ctrl+F对eclipse的代码进行格式化,换行用tap健和上下左右键【尽量避免反复空格】,养成建包的好习惯。
-
笔记本程序开发四步走;(建立工程;手动编写Java文件;javac命令将Java文件编译为.class字节码文件;java命令运行字节码文件)
-
集成开发环境是指程序开发环境和程序调试环境在一起;main方法不是关键字,main()方法是Java程序的入口点;main()方法的四要素包含public,static ,String[]args,void四要素都是关键字
-
String不是关键字,是个final类。short不常用也是八大基本类型之一,String不在包含内。
-
变量名不可以用大写字母,数字,开头;可以用$下划线开头;变量名称中不可以包含%#等特殊字符;[Java标识符不一定是变量,可以首字母大写,例如类名,工程名]标识符:
-
Boolean是1位 ,
-
typora
位置英文模式下esc键下面 的数字;三个
和语言类型可以建立特定语言的代码块;ctrl+w关闭文档 ;ctrl+shift+esc打开任务管理器;ctrl+shift+delete进行电脑强制重启 -
JAVA Error occurred during initialization of VM
在VM初始化期间发生JAVA错误
虚拟机内存不够,可能是因为控制台的小红方格子一直没有关闭,因为手动的所以必须要关闭
-
switch 结构必须要有switch和case;不一定要有default和break,贯穿性!判断条件类型有
byte,short ,int ,String ,enum ,char,不包含float,double;
-
随机数强制转换: int discount=(int)(Math.random*9+1); 折扣1-9折; int强制类型转换时应该作为一个整体,否则编译错误
在Java中,下面代码的输出结果为( ) public static void main(String[] args) { int x=2; double y=2.5; System.out.println(int(x+y)); } //输出语句中int(x+y)应为(int)(x+y), 输出结果不是4
-
for循环 初始化(迭代变量);循环条件;循环体;迭代部分【后进行判断是否再次进入循环条件,循环体】
-
continue 跳出本次循环;继续下次循环;break结束当前内层循环;return相当于flag=false,不再继续往结构单元代码块下走。flag在判断数组中是否含有某数,或删除某个元素时使用,一组数中是否包含某数;
package test0909; // public class DoubleCycle { public static void main(String[] args) { int i,j,x=0; for (i=0;i<2;i++){ x++; //第一次x=1; for(j=0;j<=3;j++ ){//内部循环走完之后才走外部, 出现continue当前for循环不往下走, /**j=0,2跳过,j=1,3 时,for循环每次加1;所以此时for内结束循环+2 ,然后x=3; * * */ if(j%2 == 0) continue; x++; } x++;//for结束加1,第一次结果 x=4; 因为两次循环所以最终结果为8 } System.out.println(x); } }
-
使用数组原因:当用变量存储数据时,存储大量数据不能满足需求,所以需要用到数组,但必须保证变量类型相同;使用循环原因是许多相似代码冗余,;
-
三个数或两个数要求换位置从小到大顺序,借助中间量temp进行交换;实现数字反转while(while num!=0){int mod=num%10//个位上的余数;十位到万位的数字依次 num/=10;}顺序输出mod就可以了;
-
continue本次循环跳过,比如求不含七的倍数一定范围的数;
-
有百分号时求比例必须先乘后除--------------比例为"+count*100/4+"%"
-
旧数组中剔除元素后获得新数组,先遍历旧数组元素,判断新数组元素个数(新数组长度),剔除元素符合条件的开始计数count;然后声明并给新数组开辟空间,元素个数刚才count已求出,必须是获得个数后才建立数组,否则下标越界, int newArr[]=new int[count];
package test0909; /** *现在有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; *要求将以上数组中的0项去掉,将不为0的值存入一个新的数组, *生成新的数组为 int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} * */ public class DelZero { public static void main(String[] args) { int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; int count=0;//新数组中的元素个数,旧数组中不为0的个数;新数组长度 int index=0;//新数组的每个元素的下标 //遍历旧数组中所有元素,获得新数组长度, for (int i = 0; i < oldArr.length; i++) { if (oldArr[i]!=0) { count++; } } int newArr[]=new int[count];//声明并给新数组开辟空间;此时已经获得了新数组的数组长度; for (int i = 0; i < oldArr.length; i++) { if (oldArr[i]!=0) { newArr[index]=oldArr[i];//旧数组中符合新数组中元素进行赋值 index++; } } for (int i = 0; i < newArr.length; i++) { System.out.print(newArr[i]+" \t "); } } }
16.当经过多长时间会超过,连续迭代时用while(变量名<额度);
17.代码尽量不要引入过多变量,尽量自增;如
pay=money*0.75;直接写money*=0.75;
18.注释时斜杠向左;换行符和制表符(可以多出来一个空格)的斜杠向右,也叫反斜杠;
19.break后不能有任何代码,括号要成对出现,当if后只有一句语句时可以省略大括号,切记代码规范要有缩进
20。path带有bin;classpath指具体类所在目录;java中环境的配置。classpath和path,从字面上来看,classpath比path多了一个class,即是’类’的意思,所以,classpath配置的是类的路径,path配置的是包或者二进制文件夹的路径。比如配置JDK的时候,classpath配置指向具体的JAR文件(rt.jar\tools.jar),在path中,指向的是jdk\bin的路径 path环境变量里面记录的是可执行性文件,如.exe文件,对可执行文件先在当前路径去找,如果没找到就去path环境变量中配置的路径去找classpath环境变量里记录的是java类的运行文件所在的目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNUh56Tx-1599838307355)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1599647036638.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eYfIVyu9-1599838307357)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1599646796599.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EfcrCxve-1599838307359)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1599625271324.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wkxx3GWU-1599838307360)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1599625682536.png)]
1变量、运算符和类型转换
1.1手动输入一个学生的成绩,对这个成绩进行一次加分,加当前成绩的20%,输出加分后成绩
package test0908;
/**手动输入一个学生的成绩,对这个成绩进行一次加分,加当前成绩的20%,输出加分后成绩
* */
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个整数");
int score=input.nextInt();
score+=0.2*score;
System.out.println(score);
}
}
1.2商场举行店庆,抽几折打几折, 先手动输入消费金额,再输入,抽到的折扣,计算出折后价格
package test0908;
/**
* 商场举行店庆,抽几折打几折, 先手动输入消费金额,再输入,抽到的折扣,计算出折后价格
* */
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个金额");
double price=input.nextInt();
//System.out.println("请输入一个折扣");
//int discount=input.nextInt();
int discount =(int)(Math.random()*10+1);//随机数生成
System.out.println(price*discount*0.1);
}
1.3手动输入一个4位数,求各位数字之和
package test0908;
import java.util.Scanner;
//.手动输入一个4位数,求各位数字之和
public class NumSum {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入一个四位数");
int num=sc.nextInt();
int ge=num%10;//个位数字
int shi=num/100%10;//十位数字
int bai=num/10%10;//百位数字
int qian=num/1000;//千位
int sum=ge+shi+bai+qian;
System.out.println("数字之和为:"+sum);
}
}
2分支结构
2.1商场消费返利活动,手动输入顾客消费金额, 如果金额打8折后仍然满1000元,用户就获得200元代金券一张(不考虑多张)
package test0908;
import java.util.Scanner;
//1商场消费返利活动,手动输入顾客消费金额, 如果金额打8折后仍然满1000元,用户就获得200元代金券一张(不考虑多张
public class Voucher {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入消费金额");
double money=sc.nextDouble();
money*=0.8;
if (money>1000) {
money-=200;
System.out.print("恭喜获得200代金券");
}else {
System.out.print("谢谢惠顾");
}
System.out.println(",应支付"+money+"元");
}
}
2.2用户输入一个年份,如果是闰年输出是闰年 (年份能被4整除,且不能被100整除,或者能被400整除的年份)
package test0908;
//用户输入一个年份,如果是闰年输出是闰年 (年份能被4整除,且不能被100整除,或者能被400整除的年份
import java.util.Scanner;
public class LeapYear {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("输入年份");
int year=input.nextInt();
if ((year%4==0&&year%100!=0)||year%400==0) {
System.out.println("该年是闰年");
}else {
System.out.println("平年");
}
}
}
2.3手动输入一个整型会员号, 如果用户输入的是4位数字, 输出登录成功, 如果用户输入的不是4位数字, 输出“您输入的会员号有误”
package test0908;
import java.util.Scanner;
//2.3手动输入一个整型会员号, 如果用户输入的是4位数字, 输出登录成功, 如果用户输入的不是4位数字, 输出“您输入的会员号有误”
public class CardNum {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入卡号");
String cardnum=sc.next();
if (cardnum.length()==4) {
System.out.println("登录成功");
}else {
System.out.println("您输入的会员号有误");
}
}
}
2.4手动输入a,b,c三个变量的数值, 要求通过数值交换, 把输入的数值从小到大 排序放入a,b,c中,并输出
ppackage test0908;
import java.util.Scanner;
//2.4手动输入a,b,c三个变量的数值, 要求通过数值交换, 把输入的数值从小到大 排序放入a,b,c中,并输出
public class MaxNum {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入a值");
int a=sc.nextInt();
System.out.println("请输入b值");
int b=sc.nextInt();
System.out.println("请输入c值");
int c=sc.nextInt();
int temp=0;//临时变量交换两数,如果不大于,不用交换;最后a的值确保最小()
if(a>b) {
temp=b;
b=a;
a=temp;
}
if(a>c) {
temp=c;
c=a;
a=temp;
}
if(b>c) {
temp=c;
c=b;
b=temp;
}
System.out