第一周java讲解小记
这一周我们在这三天之中学习了java的发展和历史和java的叙写方法,接触到了基本数据类型的转换,还有引用的数据类型,同时还学习了if-else分支语句和for循环和while循环语句,我们也练习了许多相关的经典习题。
1.java的三大分类:java总共分为3大类有:
(1)JAVA SE:标准版的java,主要用于解决桌面级的应用程序。
(2)JAVA EE:企业版的java,它是以JAVA SE为基础的并包含JAVA SE的扩充的java, 主要用于解决桌面级和服务器级别的应用程序。
(3)JAVA ME:微型版的JAVA,是JAVA SE的一部分组成的JAVA,现在已基本不太涉及并逐渐被更Android和Ios等替代,主要解决电子消费类产品和嵌入式的应用程序。
2.java的跨平台的实现
因为Java中用JVM(又称java虚拟机)的存在,所以可以实现java源程序的跨平台性,以达到一次编译,到处运行的目的,其中里面到处运行体现在字节码文件是跨平台的。
3.验证java是否正确安装和查询当前jdk的版本
用WIN+R打开运行,然后输入cmd可带命令行,若要验证java,可输入java,然后就可以对比验证了,查询当前的jdk的版本可输入java -version查询当前jdk的版本。
4.所有java程序无一例外都是以main方法(主方法)作为一个入口来运行的,所有java程序的主方法有且只能有一个,并且JVM只认以main开头的主函数。
5.java程序的注释方法。
单行注释 //注释内容
多行注释 /注释内筒/
文档注释 /*注释内容/
6.基本数据类型简介
java里面最多能有36个进位,因为最多能以26个英文字母和10个阿拉伯数字来作为进位单位。
基本数据类型:
整型:
byte 1字节 8位 -128~127
short 2字节 16位 -32768~32767
int 4字节 32位 -65536~65535
long 8字节 64位
浮点型:float 4字节 32位
double 8字节 64位
字符型:char 2字节 16位
布尔型:boolean 2字节 只能参加逻辑运算,只有true和false两种结果
基本数据类型的转换规律:
(1)小字节+大字节=大字节
(2)字符+数字=数字(可以理解为当前数字向前或向后偏移多少位)
(3)大字节向小字节转换会损失精度
(4)小字节向大字节换换需使用强制类型转换可以使用(想要强制转换的数据类型)+数据
7.三元运算符的运算规则
格式:(表达式1)?表达式2:表达式3;
规则:表达式1的值必须为布尔类型的结果,若结果为true,则选取表达式2的值,则若结果为false,则选取表达式3的值。
8.if-else语句小记
当if后面跟的语句必须为能判断的布尔类型的值,若结果为true,则执行if条件体里面的语句,否则直接跳过if条件体,直接执行下面的大括号里的其他语句。三元运算符是简写的if-else格式,简写是有弊端:不是所有的if-else都能简化,三元运算符运算完必须有结果,而if-else不一定运算完一定有运算结果。
9.循环语句小记
(1)for循环主要用于事先循环次数明确的具有相同算法逻辑的java程序
(2)while循环则主要用与事先循环次数未知也同样具有相同算法逻辑的java程序,while程序易导致死循环,别忘了最后判断跳出条件,用break语句跳出此死循环。
(3)for循环构成的嵌套循环:最外层循环主要为控制输出行数的约束;内存循环主要为单独各自判断各行输出个数的输入约束;各行输出结果的不同主要体现在System.out.print()输出方法里面的输出。
while循环注意事项
1.while循环的括号中的表达式计算结果必须为boolean类型的值。
2.while循环的括号中不能直接写false常量。
3.while循环的括号后面不要写分号,循环控制的语句的代码用大括号扩起来。
4.while循环控制的条件变量一定要更新,保证循环能够正常结束;
经典空心菱形代码程序段
class Tuxing{
public static void main(String[] args){
int i=1;
while(i<=11){
int k=1;
while(k<=Math.abs(i-6)){
System.out.print(" ");
k++;
}
int j=1;
while(j<=i&&j<=12-i){
if(j==1||j==i||j==12-i){
System.out.print("* ");
}else{
System.out.print(" ");
}
j++;
}
System.out.println();
i++;
}
}
}
判断任意数字是否为回文数
import java.util.Scanner;
class Demo4_Upper{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number you like :");
long num1 = scanner.nextLong();
long temp = num1;
long res=0;
while (true){
if (temp==0){
break;
}else{
long i=temp%10;
res = res*10+i;
temp/=10;
}
}
if (res==num1){
System.out.println("该数为一个回文数");
}else{
System.out.println("该数不是回文数");
}
}
}
日历的经典核心算法
import java.util.*;
class Home08{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter year:(e.g.,2012):");
int y = scanner.nextInt();
System.out.print("Enter month:1-12:");
int m = scanner.nextInt();
System.out.print("Enter the day of the month:1-31:");
int q = scanner.nextInt();
String [] s = {"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
if (m==1){
m=13;
y = y-1;
}
if (m==2){
m=14;
y = y-1;
}
int j = Math.abs(y/100);
int k = y%100;
int h = (q + 26*(m+1)/10 + k + k/4 + j/4 + 5*j)%7;
System.out.println("Day of the week is "+s[h]);
}
}
数字金字塔
import java.util.*;
class Class15{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the number of lines:");
int N = scanner.nextInt();
for (int i=1;i<=N;i++){
for(int j=1;j<=N-i;j++){
System.out.print(" ");
}
/*for(int k=1;k<=2*i-1;k++){
System.out.print(Math.abs(k-i)+1+" ");
}*/
for(int k=i;k>=1;k--){
System.out.print(k+" ");
}
for(int n=2;n<=i;n++){
System.out.print(n+" ");
}
System.out.println();
}
}
}