“种一棵树最好的时间是十年前,其次是现在!”你好,我是梦阳辰,期待与你相遇!
01.IEDA快捷键
复制单行:Ctrl+D
删除行:Ctrl+X
替换文本:Ctrl+ R
查找:Ctrl +F
重命名:Shift + F6
02.数据的表示
1.数据类型
为什么要定义数据类型?
(1) 人的认知范围本来就有数据类型,比如年龄就应该是整数。
(2)其规定了可以执行的操作,如字符串不能用于加法运算(除连接),而数字类型可以。
(3)自动确定了所需内存单元个数,从而便于编程。
2.基本数据类型
byte----1
short—2
int ------4
long-----8
float-----4
double—8
boolean—1
char-------2
3.常量
(1)直接常量
如:26,“梦阳辰”,026,0x26(十六进制),34L(长整型)
(2)符号常量
用标识符来标识一个常量。
4.符号常量的意义?
(1)符号常量可以表示含义,见名之意。
(2)符号常量修改便捷,只需修改标识符所代表的数据(维护方便)。
public static final int PRICE = 666
#define PRICE =666
命名规范
(1)见名知意
(2)全部大写
(3)若有多个单词,单词之间用下划线
5.变量
定义:类型名 变量名
什么是变量?
变量是内存单元,里面存储着数据,空间大小由数据类型决定,用变量名来访问该变量。
6.变量名命名规范
(1)见名知意
(2)多个单词,驼峰命名法(首字母小写)
float price;
float milkPrice
类名:首字母大写
03.Java的格式化输出
(1)用法
跟c语言的prinf相似:
即System.out.printf();
package Chapter1;
import java.util.Scanner;
public class Java01_02_Scanf {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入姓名:");
String name = scan.next();
System.out.println("请输入年龄:");
int age = scan.nextInt();
System.out.println(age);
System.out.printf("欢迎%s,你的年龄是%d,祝你学习愉快!",name,age);
}
}
(2) nextLine()和next的区别?
next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。
*nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。
04.数值运算
数据的存取,理解数据在内存单元中如何存取?
package Chapter1;
//数据的存取,理解数据在内存单元中如何存取
public class Java01_03_get_set {
public static void main(String[] args) {
int num1 = 5;
int num1 = num1+3;
int num2 = 3;
int sum1 = num1+num2;
System.out.printf(“num1=%d,sum2=%d”,num1,sum1);
}
}
算术运算,即将内存单元(变量)中的数据取出和数字进行运算,并将运算结果存到内存单元中。
05.程序设计对设计者的要求
1.精通业务
2.能用一门语言很好的表达解决问题的步骤。
因此我们应该通过实践提高分析和解决问题的能力。
程序设计的三步法:
(1)搞清楚解决问题的思路(站在计算机的角度思考问题)。
(2)将思路用自然语言表达出来。
(3)将自然语言转换成计算机语言。
例一:计算三位数的每位数之和。
(1)提示输入
(2)输入数据
(3)分别求出三位数的各位数
(3.1)先求出个位数(对10取余)
(3.2)去除个位数(对10整除)
(3.3)依次循环求出各位数
(4)将各位数相加
package Chapter1;
import java.util.Scanner;
public class Java01_04_sanWeiShuZhiHe {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int [] arrays= new int[3];
System.out.println("请输入一个三位数:");
int num1 = scan.nextInt();
int num2=num1;//保留原始数据num1
int count=0;
while (num2!=0){//求出三位数的每位数
arrays[count++]=num2%10;
num2=num2/10;
}
int sum=0;
for(int i=0;i<3;i++){
sum=sum+arrays[i];
}
System.out.println(sum);
}
}
例二:
求出三位数重组后最大的数:
package Chapter1;
import java.util.Scanner;
public class Java01_05_ZhongZhuZuiDA {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int [] arrays= new int[3];
System.out.println("请输入一个三位数:");
int num1 = scan.nextInt();
int num2=num1;//保留原始数据num1
int count=0;
while (num2!=0){//求出三位数的每位数
arrays[count++]=num2%10;
num2=num2/10;
}
int max = Math.max(Math.max(arrays[0],arrays[1]),arrays[2]);
int min = Math.min(Math.max(arrays[0],arrays[1]),arrays[2]);
int mid = arrays[0]+arrays[1]+arrays[2]-max-min;
int result=max*100+mid*10+min;
System.out.println("重组最大的数为"+result);
}
}
06.Java的Math类
Math的ceil方法:
向上取整
Math的Floor方法:
向下取整
Math的random方法:
Math.random():产生一个[0,1)之间的随机数。
Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值。
07.选择
switch的case是入口,程序是顺序执行的。
08.循环
1.循环的套路:
(1)都有一个初始条件。
sum=0;
n=0;
(2)都有一个循环条件。
n<100;
(3)都需要反复执行某一个操作。
n++;
(4)如何过渡到下一次。
2.C201_04_05_计算圆周率:π/4 = 1-1/3+1/5-1/7+1/9……,直到最后一项的绝对值小于10-6
package Chapter2;
public class Java02_01_QiuYuanZhouLv {
public static void main(String[] args) {
double n=1;
double sum =0;
while ((1/(2*n-1)) >= 1.0e-6){
if(n%2==0){
sum = sum-1/(2*n-1);
}
else{
sum = sum+1/(2*n-1);
}
n++;
}
System.out.println(sum*4);
}
}
3.循环的遍历
3.1:同c语言。
foreach遍历
for(元素类型type 元素变量value : 遍历对象obj) {
引用x的java语句;
}
09.错误的概念与处理
1.语法错误。
看下面的错误信息。
2.逻辑错误。
可以运行,结果错误。
2.1调试的工具和方法
1.添加和删除断点。
2.查看程序的运行状态。
状态:表达式的值和程序的运行轨迹。
人生就像爬坡,要一步一步来。
关注公众号【轻松玩编程】回复关键字“电子书”,“计算机资源”,“Java从入门到进阶”,”JavaScript教程“,“算法”,“Python学习资源”,“人工智能”等即可获取学习资源。