本次博客(笔记)承接上个博客—基础知识,记录一些简单易懂的代码和方法。
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
强制类型转换
public class Leixingzhuanhuan{
public static void main(String[] args){
int num = 4;
byte b;
b = (byte) num; // 定义byte和强制转换可写为一部 : byte b =(byte) num;
System.out.println("b = " +b);}
}
精度丢失
public class Jingdudiushi{
public static void main(String[] args){
int a = 299 ;
byte b = (byte) a ;
System.out.println(" b = " + b);
}
}
ps:出现精度丢失问题的原因是:大转小。大的变量转换为小的变量,导致小的变量容不下,溢出。
以本例讲解,计算出来的结果是:299 - 256 = 43
因为byte的范围是 0-255 ,即要转换的数299 - 256。
public class Zuoyongyu{
public static void main(String[] args){
int x = 12;
{
int y = 96;
System.out.println("x = " + x);
System.out.println("y = " + y);
}
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}
注:本例中,x在大括号外围定义,之后定义y的括号也可使用。
但在小括号定义的y,使用时不能超过这个小括号这个范围。即,大赋小,小不能赋大。
public class Suanshu{
public static void main(String[] args){
int z = 1;
int a = z++;
int b = ++z;
System.out.println("a = " +a);
System.out.println("b = " +b);
}
}
ps:++ 和--都一样的原理,如果符号在字母的前面,则先进行加减,再进行赋值。
如果符号在字母的后面,则先赋值,再进行加减。
本例中:z的值为1,a = z++,先将z的值赋给a,再进行加法。得到的结果为a=1.
b = ++z,则先在z的基础上+1,得到z=2,再赋给b,得到b=2.
public class Fuzhi{
public static void main(Srting[] args){
short s = 3;
int i = 5;
s += i; // s + i = s;
System.out.println("s is " +s);
}
}
public class Luoji{
public static void main(String[] args){
int x = 0;
int y = 0;
int z = 0;
boolean a,b;
a = x > 0 & y++ > 1;
System.out.println("a is " +a);
System.out.println("y is " +y);
b = x > 0 && z++;
System.out.println("b is " +b);
System.out.println("z is " +z);
}
}
ps:运算下来后发现 a 的值是false,y 的值为1。b的值为false,z的值为0.
代码没什么两样,改变的只有符号和字母。需要注意的是:以本题拿&为例,
当只有单个 & 时,会计算完左边的 a > 0 后接着计算 y++ 。所以最后y的结果为1.
当有两个 && 时,会判断左边的 a > 0 不成立,则直接输出结果false。不进行对右边的判断。所以
z 的结果为0。
public class If{
public static void main(String[] args){
int x = 5;
if( x < 10){
x ++ ;}
System.out.println("x is " +x);
}
}
public class IfElse{
public static void main(String[] args){
int num = 19;
if (num % 2 == 0){
System.out.println("num为偶数");
}else{
System.out.println("num为奇数");
}
}
}
public class IfElseDuoji{
public static void main(String[] args){
int gread = 75;
if (gread >80){
System.out.println("成绩为优");
}else if(gread >70){
System.out.println("成绩为良");
}else if(gread >60){
System.out.println("成绩为中");
}else {
System.out.println("成绩为差");}
}
}
}
public class Switch{
public static void main(String[] args){
int week = 3;
switch (week){
case 1: //注意是 冒号,不是分号
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default :
System.out.println("您输入的数字错误");
break;
}
}
}
计算工作日和休息日的简短代码
public class switch1{
public static void main(String[] args){
int week = 2;
switch (week){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("今天是工作日");
break;
case 6:
case 7:
System.out.println("今天是休息日");
break;
default :
System.out.println("您输入的数字有误");
break;
}
}
}
public class While{
public static void main(Srting[] args){
int x = 1;
while ( x < 4){
System.out.println("x = " +x);
x++;
}
}
}
public class DoWhile{
public static void main(String[] args){
int x = 1;
do {
System.out.println("x = " +x);
x++;}
}while(x <= 4); //注意分号
}
public class For{
public static void main(String[] args){
int sum = 0;
for ( int i = 1; i <= 4; i++){
sum += i;
}
System.out.println(" sum is " +sum);
}
}
for循环嵌套打印直角三角形
public class ForQianTao{
public static void main(String[] args){
int i,j;
for( i = 1; i <= 9; i++){
//外层循环
for(j = 1; j <= i; j++){
//内层循环
System.out.print("*"); //打印*
}
System.out.println();} //换行
}
}
public class Break{
public static void main(String[] args){
int i,j;
it cast: for( i = 1; i <= 9; i++){
for( j = 1; j <= i; j++){
if( i > 4){
break it cast;}
}System.out.print("*");
}System.out.println();
}
}
public class Continue{
public static void main(String[] args){
int sum = 0;
for ( i = 1; i <= 100; i++){
if (i % 2 ==0){
continue;
}sum += i;
}
}System.out.println("sum =" +sum);
}
public class Fangfa{
public static void main(String[] args){
printJuzhen(3,4);
printJuzhen(5,7);
printJuzhen(10,12);
}
public static void printJuzhen(int x , int y){
for(int i = 0; i < x; i++){
for(int j; j < y; j++){
System.out.print("*");}
System.out.println();
}
}
}
public class Fanhui{
public static void main(String[] args){
int z = FanHui(5,6);
System.out.println("z = " +z);
}
public static int FanHui(int x, int y){
return x * y;
}
}
public class ChongZai{
public static void main(String[] args){
System.out.println("getArr = " +getArr(12,23);
System.out.println("getArr = " +getArr(45.23,12.56);
System.out.println("getArr = " +getArr(12,23.78);
}
public static int getArr(int x, int y){
return x + y;
}
public static double getArr(double x, double y){
return x + y;
}
public static float getArr(int x, float y){
return x + y;
}
}
public class Shuzu{
public static void main(String[] args){
int arr[]; //定义数组
arr = new int[100]; //创建数组容量
System.out.println("arr[0] = " +arrr[0]);
System.out.println("arr的长度为" +arr.length);
}
}
public class Fuzhi{
public static void main(String[] args){
int arr[] = new int[2]; //new之后的[] 一定要写入容量
arr[0] = 1;
arr[1] = 2;
System.out.println("arr[0] = " +arr[0]);
System.out.println("arr[1] = " +arr[1]);
}
}
ps:new之后的[]一定要写入容量,如果没有容量编译是不通过的。
对于没有的赋值的元素,统一都是0.
当然也要注意输出的值不能超过容量的大小。example21 会讲解越界的代码。
public class Jingtai{
public static void main(String[] args){
int [] arr = {
1,2,3,4};
System.out.prinrln("arr[0] = " +arr[0]);
System.out.println("arr[1] = " +arr[1]);
System.out.println("arr[2] = " +arr[2]);
System.out.println("arr[3] = " +arr[3]);
System.out.println("arr[4] = " +arr[4]);//编译到此处不通过
}
}
ps:数组的容量是从0开始打得。例如本例中,初始化定义和赋值数组放一起进行,只有四个数字,
所以结果也是从元素0开始,于元素3结束,即0 1 2 3 。出现4之后即为越界。
public class Kong{
public static void main(String[] args){
int arr[] = new int [3]; //定义数组
arr[0] = 5; //为第一个元素赋值
System.out.println("arr[0] = " +arr[0]);
arr = null; //给数组赋空
System.out.println("arr[0] = " +arr[0]);
}
}
ps:为整个数组赋空,即这个数组中所有的元素都为空
public class BianLi{
public static void main(String[] args){
int [] arr = {
2,3,4,5,6};
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
}
}
public class MaoPao{
public static void main(String[] args){
int arr[] = {
2,4,1,9,8,3,7};
System.out.println("排序前的数字是");
printShuZu(arr);
fangfa(arr);
System.out.println("排序后的数字是");
printShuZu(arr);
}
public static void printShuZu(int []arr){
//打印数组的方法
for (int i = 0; i < arr.length; i++){
System.out.print(a[i] +" ");
}
System.out.prinln();
}
public static void fangfa(int []arr){
//冒泡排序的方法
for(int i = 0; i < arr.length - 1; i++){
for(int j = 0; j < arr.length -i -1; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;}
}
}
}
}
public class MAX{
public static void main(String[] args){
int []arr = {
12,45,98,32,65,78};
int max = getMax(arr);
System.out.println("max is " +max);
}
public static void getMax(int arr[]){
int max = arr[0];
for(int x = 1; x < arr.length; x++){
if(arr[x] > max){
max = arr[x];}
}
return max;
}
}
方法一 if函数
public class Fangfa1{
public static void main(String[] args){
int a,b;
Scanner scanner = new Scanner(System.in);
a = scanner.nextInt();
b = scanner.nextInt();
if(a > b){
System.out.println("max 为 " +a);
}else {
System.out.println("max 为 " +b);
}
}
}
方法二 方法
public class Fangfa2{
public static void main(String[] args){
int a,b;
Scanner scanner = new Scanner(System.in);
a = scanner.nextInt();
b = scanner.nextInt();
getmax(a,b);
}
public static void getMax(int x, int y){
if(x > y){
System.out.println("max is " +x);
} else {
System.out.println("max is " +y);
}
}
}
用时两天下午,7500字左右。更新进度比较慢,在小黑的催促下终于肝出来了。谢谢大家的观看,虽然我的目的是为了记录自己的路程。但衷心的希望对能看到这儿的你有所帮助。由于我是一个小菜鸡,对很多东西存在着盲区,所以也明白自己的问题出现的地方。来对可能正是初学者的你有所启发。其中可能有很多的问题,可能有编译结果出来,但是代码有问题。原本想复制来的,最后还是自己又一次敲出来(虽然检查过一遍)。无论出现什么 问题,或者有什么遇到的问题,可以私信一起交流。
最近的一些感触,发表在最后:
记录2020年的想法,我是一个00年出生的小伙子,当20年的钟声敲响的时候,我意识到,自己也都20岁,21岁了。我依稀记着自己的前二十年的懵懂和无知,小学初中成绩一直不是很好,吃了睡,睡了玩,玩了就继续吃,过着三点一线的生活。在高中之后认识了许多生命中的贵人,慢慢来调整自己的状态。
有时候故作深思的乱想,想人的一生到底在做什么,想我该怎么才能更好,为什么人与人之间的差距那么大。当然,那时的自己也就想想而已。
20年给我最大的提示,emmm,此处警示会更好一点:未来的十年是当代零零后年轻人需要奋斗拼命的十年。正因为我们正直青年,没有了前二十年的懵懂气息和幼稚,也没有未来有自己的家庭和负担。我们才有机会去做自己能做的事情,不妨想一想自己未来十年的生活,你可能有了自己的家庭,有了自己的孩子,父母也会年事已高。哪儿有那么多的时间去玩,去学习,去奋斗。为什么不在自己青春的20-30之间,做到业立家成呢?
至少这样,将来的我不必为了对自己生活,婚姻,家庭的不满而满声抱怨,不会为了家庭的艰难,而对当年正直20岁的自己自怨自艾…
不由得想引用奥斯托洛夫斯基笔下《钢铁是怎样炼成的》中主人公保尔·柯察金的一句话:
人的一生应当这样度过:“当回忆往事的时候,他不至于因为虚度年华而痛悔,也不至于因为过去的碌碌无为而羞愧;在临死的时候,他能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业——为人类的解放而斗争。
人的青春不应该这样吗?对于现在的我们,有足够的时间,有足够的精力去完成自己想做的,有足够的时间去这么大的世界转转。
我的青春,应该爱我所爱,不念过往,不惧将来,活在当下。