软件园学生在线

  • {{ item.name }}
  • 2023试用期

登录与注册

【零】冯羽

  • Mad_Fish
  • 2022-10-09
  • 0

对Java基础语法的个人见解

(混杂着很多奇怪的、系统自动生成的吐槽)(确信)

Mad_Fish 2022.10.08


一、变量

简答题1:变量在程序中的作用?(6分)

通常来说,任一变量有3个基本要素……

1. 类型

(1)整型

byte,short,int,long四种整型,储存能力渐增

这其中int恐怕是最常用的整型了吧!查到的原因说是与32位计算机的性质相关

(但是我没有去深究,总之byte和short我是从来没见谁用过……)

作为最为常用的变量类型之一,务必要记住int的取值范围!

(别看我,我没记住,我就只知道是±21亿多啦)

当数据大小超过int范围时就不得不请出long了(区区±9223372036854775807不是跟你开玩笑的)

【注意】long型的数字务必要在结尾加上字母L !!!!! long型的数字务必要在结尾加上字母L !!!!! long型的数字务必要在结尾加上字母L !!!!!

如果long都不够用的话,当然要请出伟大的unsigned long long

(啊走错门了)

你可以使用java.math.*下的BigInteger(很大的大整型)来一劳永逸地解决这种事……

(不会只有C++必须要写高精度吧!不会吧不会吧!)

(2)浮点型(我更愿意喊你小数型)

float,double两种不同精度的浮点型

单精度的float已经十分够用了(1.4e-045 ~ 3.4e+038)

请加F在float数字末尾谢谢喵请加F在float数字末尾谢谢喵请加F在float数字末尾谢谢喵请加F在float数字末尾谢谢喵请加F在float数字末尾谢谢喵

double储量更是十分的充足(4.9e-324 ~ 1.8e+308)

(个人更喜欢用double的原因纯粹是因为可以不用加字母在数的末尾)

(如果还不够用的话,BigDemical表示不在话下)

(3)布尔型

boolean,值要么是false要么是true

可以用在判断句式里面(毕竟人家值就是true与false)

(只在C++里用过,主要是因为Java的boolean用起来不够顺手)

【当然一些东西用布尔值表示可以便于意义的理解,更加合适。(所以吐槽归吐槽)】

(4)字符型

char储存一个字符,并且可以通过前缀(int)转换成对应的ASCII码

一开始接触时就认为是非常方便的东西

///////(相比于其他类型的古板吾更爱字符型之灵动!)(大雾)

典型的比如遇到输入的内容是多种类字符混杂时,就会拿出它来配合read()

///////(毕竟自己也没去查过有没有什么更好的输入处理方式)

(5)字符串

String
(呃,虽然字符串可能不应该出现在这里?)
(但是它真的很基础,我觉得应该要放在这里吧!)

约等于字符数组(嗯,约等于)

虽然说是很基础但是功能却十分繁多且强大!

比如长度获取、连接、分割、查找指定字符(串)、替换、判定、比较、大小写转换…………等等

(不要怪我写的草率,我记不住,只会在想用的时候到处百度……)
(应该也不用去特地记忆它们吧)

2、名称

变量总是要有一个名字,那么起名字嘛……也是一门学问对吧……

首先要遵守起名基本规则(字母/数字/下划线,数字不可开头,不可与保留字相同)

(这个错一般不会犯吧)

然后就是“起名鬼才”……

不同人的起名喜好不尽相同,但是起一个好的名字是十分必要的……

与其含义有关联性(比如tot、tmp、sum这样的)

尤其是当一个程序要有不止你一个人参与编辑时,起名这方面上最好不要整活,不想用全拼/单词,那就算用首字母缩写也总比abcde强亿倍啦~

3、值

变量要有值,嗯。

不设定值的话默认就是 0 咯

就像如果成为v出道的话,不设定具体的值,就会默认是( )

4、静态

【众所周知,变量有3个基本要素,所以要分4个内容】

static 修饰在变量的前面,这样在每一个同类下的方法中都可以修改/引用该变量

(再多的我也不知道了)

【局域网→内网穿透】


二、定义变量

我说你是啥,你就是啥!

(这个看起来没啥好说的但是又有点能说的东西?)

这里只打算纯粹吐槽一下对数组或者类的定义时……

Scanner sc=new Scanner(System.in);

第一次见到new的时候我是很震惊的啦!调用类一定要new一下才行诶!

你要想定义一个数组,直接过,没问题 int[] a;

但要是想同时定义数组大小,对不起,请加上new来确定你要给a开空间……

int[] a=new int[5];

要么你得 int[] a=new int[]{1,2,3,4,5,6,7,8,9,10};这样也是开了空间

但是空间就只有这么大了……你要想增大空间,请new一下(然后数据全部消失)


三、赋值&类型转换

性(质)转(变)!

没太多可以说的,赋值就赋它应该是的东西咯

但是整型可以赋int a='0';这样的东西,就好比char p=32;

因为这俩本来就是等价的……(ASCII码对应)

不过也不完全一样啦~

int a='0';

char p=10;

a=p;//这句可以执行

p=a;//这句将会报错

char变成int毫无压力

int变成char非得用p=(char)a才能赋过去,那确实没啥办法,就得这样。

【除此之外常见的类型转换还包括小数/整型转换】

比如double a=1.732;然后int b=(int)a;这样b就只剩1了(没有四舍五入)

还有int a=5,b=3;然后double c=(double)a/b不加类型转换的话得不到小数的。


四、运算符

繁而不乱,杂而有序。

运算符有不少,都很常用,并且有优先级

呃我不会提倡去背优先级,我更建议养成好习惯多打几个括号

不过为了严谨(凑字数)我还是列一下大致的优先级吧!(优先什么?)

SSS+:括号 //绝对的最强,毫无争议,解除一切纷争の神
SSS:非/自增/自减/取反 //只涉及自己,不涉及他人的一些运算符
SS:乘/除/取模 //取模比加减强!取模比加减强!取模比加减强!
S:加/减 //嗯哼哼……
S-:移位
A:不等号 //包括大于小于大等小等
B:等于/不等于 //没有不等号强
B-:与运算
B--:异或运算
B---:或运算
C:与
D:或 //与比或强!
E:三元运算 //有时候写起来方便
F:赋值运算符们 //比如= +=.......

总体的关系大约就是算术运算符>关系运算符>逻辑运算符>位运算符>赋值运算符


五、判断

To Do,or not to do.

1.if

if ( "一个布尔值" ) { ...... } (没什么可说的)

呃其实还是有地方吐槽的:【必须用布尔值,没办法用整型混过去了!】

好的,言归正传……

if(){}可以跟else{}连用
形成(知名的)连续判断……:

if(){

}
else if(){

}
else if(){

}
...
else{

}

2.(Nintendo) switch

如果实在是会导致非常的冗长,用switch(){}替代是不错的选择

switch(某个整型,比如a){
    case "一个数字":“语句A”;“语句B”;....;break;
    case "一个数字":“语句C”;“语句D”;....;break;
    case "一个数字":“语句E”;“语句F”;....;break;
    ...
    default:“语句M”;“语句N”;
}

检索a与case当中哪个条目的数字相同,若相同则执行之;

【如果不加break;则将会继续执行其下一行的语句内容(这时候就会忽略case要求的数字了)直至遇见break或者所有语句运行完毕】

如果没有与任何条目的数字相同,则执行default后的语句

【当然,default不是必要的,可以没有default】


六、循环&对循环的操作

“你永远也无法达到……不好意思走错了。”

1.while循环

while(一个布尔值){.....}

刚进入while时或所有语句执行结束后,布尔值为true就依旧执行,为false就离开。

2.do-while循环

【我为什么要用这玩意儿?】

do{.....}while(一个布尔值);

先执行内容一遍,然后再检索while (这货我就不多讲了吧,很少用到)

3.for循环

【理论上可以和while互相取代,但没必要】

for(单次表达式;条件表达式;末尾循环体){.....}

进入for后:

①执行单次表达式

②判断条件表达式,若true则执行{.....}内语句,否则离开

③执行{.....}完毕后,执行末尾循环体

④然后重复②和③

【三个表达式都不是必要存在的!】

最常见的for循环形式恐怕就是

for(int i=0;i<n;i++){
    .....
}

这可以让里面的语句被执行n次

但这只是最基本的用法罢了……我的意思是,你完全可以发挥想象,让for变得十分有用……

【好吧,再怎么有用,也是可以和while互相转写的!】

4.break

break;
遇到break;之后,立即跳出当前所处的循环(不是当前的大括号哦)

5.continue

continue;
遇到continue;后,立刻进入下一次循环(仍然会执行for循环的末尾循环体)

6.loop

【对不起!我不会!!】

总之是在多层循环结构中,可以跳到指定的一层循环去的一种指令。

(由于没有用过,所以不会,这一定很合理吧!)


七、注释

//备注:我是一条注释,我只负责卖萌,剩下的交给你们。

//我只讲三句话:

/* 多写注释!!

   多写有用的注释!!!

   尤其是有多人协作/复杂题目时 注释是十分甚至九分有用的!!!!  */

// 好的,不说了。

八、写在结尾

《关于我在第一次培训已经结束后才补交第零次培训作业这件事,我表示十分的抱歉并希望(只是希望……)下次自己不要拖更这件事,我劝学长大人网开一面体谅吾等萌新小生在下万分感谢)))))))》








困。

2022-10-9 02:03:38

Mad_Fish
Mad_Fish
© 2025 软件园学生在线
Theme by Wing