Java语法基础
Java语言
计算机语言的语法
计算机语言存在的价值,学习的必要性?
数据类型&运算
Java基本数据类型
数据类型的声明和使用
变量使用的注意事项
java运算符及其优先级
static修饰符
Java循环语句以及选择执行语句
循环语句:do…while、while和for
do…while循环
while循环
for循环
break与continue
三种循环的区别及其共同点
选择执行语句
if … else … 语句
switch语句
方法的定义
数组
总结
文章按照个人的思路写的,顺着思路的顺序所写。

Java语言
Java语言,是一门计算机高级语言。所谓高级,就是说,不是对计算机底层进行操作的语言,而是对计算机软件或程序进行设计和开发的语言。

计算机语言的语法
无规矩不成方圆,一门语言,是必须具有一定逻辑性的,计算机也是一样。计算机语言本是由0和1构成,为了人们能更好的与计算机进行交互,才会产生新的语法规则。Java也有属于他自己与计算机交互的语法。

计算机语言存在的价值,学习的必要性?
计算机比人类强的地方就在于其计算速度之快,是人类无法企及的。只要将问题的逻辑梳理并在计算机上面实现,会比人类处理速度高太多。

计算机语言要学习哪些方面?

学过数电,都知道,计算机其实就是在做,与非的各种操作。进阶一下,计算机无非就是计算一些加减乘除等逻辑运算,还有一些循环操作。这可以说是学习计算机语言基本要了解的底层原理吧。

目标很明确,计算机要学的就是逻辑运算的技巧和循环。所有应用程序基本都在做这些事情

数据类型&运算
数据类型可以分为基本数据类型和引用数据类型。
基本数据类型有8种(引用数据类型,以后文章会讲。)

Java基本数据类型
类型 占用内存 范围 默认值 取值方式举例
字节型 byte 1字节 -128 ~127 0 byte a = 3
短整型 short 2字节 -215 ~ 215-1 0 short a = 6
整型 int 4字节 -231 ~ 231-1 0 int a = 666
长整型 long 8字节 -263 ~ 263-1 0L(0l) long c = 123L
浮点型 float 4字节 IEEE 7541 0.0f float f = 1.2f
双精度型 double 8字节 IEEE 754 0.0d double d = 2.33d
字符型 char 2字节 \u0000(0) ~\uffff(65535) \u0000 char c = ‘秀’
布尔型 boolean 1字节 true 或false false boolean flag = true
数据类型存在的优缺点

优点

他确定了存储空间大小,减少了多余空间的浪费。
对于个体而言,区分类型很多余,但是如果存储企业级的数据量时,这样考虑,就特别有必要。
读取方便,不存在不知道数据类型,而显示乱码等问题。
缺点

空间大小确定,存储数值不能超出范围,有数据溢出的风险。
数据溢出:直接导致数据值变成一个不是你想要看到的结果

计算机中是0和1存储,现在如果只有四位则最大1111(二进制),如果加1,就会发生进位,但是就只有4位,就导致显示0000所对应的结果。

数据溢出实例:

public class Test01{
public static void main(String[] args){
int a = 2147483647;
System.out.println(a + 1);
}
}
1
2
3
4
5
6
输出结果为:-2147483648

数据类型的声明和使用
上述的例子中 int a = 2147483647; 就是对整型(int)类型变量a声明,并赋值为2147483647的使用方法。

这里顺带提一下,变量的命名方式采用小驼峰命名法

小驼峰命名法:命名由多个单词组成时,(除了第一个)单词首字母都大写。例:myPhone,studentName……

变量使用的注意事项
变量声明问题
变量声明且赋值时,不要接着声明赋值,例:int a=3,b=6;
这种写法不利于观察,最好别用。
变量赋值问题
char 类型赋值
char 的值需要用英文单引号 ’ 括起来
里面只能是一个字符,如:阿拉伯数字,特殊符号,英文字母、汉字等。
有一些特殊字符,需要加\进行转义,如 char c = ‘’’ ;单引号在这里不能单独打出来。(这是反斜杠,别看走眼)
注意:char 还可以直接写阿拉伯数字,其会输出对应的ASCII编码表对应的那个符号。(间接说明了,char可以进行加减计算,但结果是字符,而整型数据)
float 类型赋值
float类型的数据,只要写的是个小数,结尾必须加f,这一点就比较恶心人 >_<
其主要原因就是,不加后缀f,java默认认为这是一个double类型的变量值。
当然也能“强转”(float a = (float)1.2;),之后这类话,我不写,有谁无聊,愿意多敲几下键盘呢?
long 类型赋值
long 类型的值,在值大于21474839647时,或小于-2147483648时,都需要加L后缀。**建议使用这个L,其实也可以写小写l作为后缀,但是容易误以为是1.
java运算符及其优先级
在这里插入图片描述

其中自增自减,是在原变量基础上加1,或减1的操作。

注意: a++;表示在这一行中,a的值没有变,下一行(分号后)开始就进行了+1。然而++a表示此刻,a就已经进行了+1操作。
例:
int a = 3;
int b = a++;//a先赋值给b,再自增
System.out.println(a+"—"+b);//此时a为4,b为3
b = ++a;//此时a先自增为5,再赋值给b
System.out.println(a+"—"+b);//a和b都为5
1
2
3
4
5
有没有感觉如果是这样用的话,这个东西很鸡肋?谁蛋疼会去一个个的赋值什么的,没luan用的感觉,接下来,就是升华了,我们要计算机跑起来,那就让程序进行循环。

static修饰符
main方法体上有一个static修饰符,这表示main方法是一个静态方法。
静态的作用

凡是static修饰的量(常量和变量)以及方法。在JVM运行过程中,java虚拟机会将静态资源优先加载。所以static静态资源中,不能调用和使用外部存在的非静态资源
其优点在于,提前就已经进行了加载,用的时候,就很快捷且方便。
大致就是,虚拟机在加载类的过程,会先将static的部分先进行加载测试。所以说,从逻辑上讲,先进去的能做的事情就很有限,普通方法和变量还没加载,自然不能被静态资源调用。即便能调用,也可能出现问题。

Java循环语句以及选择执行语句
学习无趣?接下来我们学习如何从2020年初,想你到2020年末,让你感受代码对你的关怀!

循环语句:do…while、while和for
do…while循环
int i=1;
do{
System.out.println(“我爱祖国”+i+“次,很开心”);
i++;
}while(i<101)
1
2
3
4
5
将以上代码放入main方法体,就可以循环100次了,有没有很惊喜?以后给你男(女)朋友刷屏时,你就是手速最快的人!┗( ▔, ▔ )┛

纳尼?你还不知道什么是main方法体?
在这里插入图片描述

while循环
int cowCount = 0;
while(cowCount<66){
System.out.println(“第”+(cowCount+1)+“只奶牛回来了”);
cowCount++;
}//有兴趣的可以试试,把那个括号去掉,会有惊喜 -w-
1
2
3
4
5
for循环
int day;
for(int month=1;month<13;month++){//打印2020全年
for(day=1;day<31;day++){
System.out.println(“2020/”+month+"/"+day);
}
}
1
2
3
4
5
6
break与continue
break和continue一般会出现在循环体或选择执行语句中。

break:跳出其所在循环或者选择执行语句。
continue:跳过循环的意思,说明这一次的循环走到末尾,进行下一次循环
int i=0;
int count=0;
for(i=1;i<1000;i++){
if(i%2!=0) continue;//i不是偶数,就跳过这一次循环
count++;
if(i==68) break;
}
System.out.println(“判断了”+count+“次,i是否等于68”);
System.out.println(“for循环执行了”+i+“次”); //输出i=68
1
2
3
4
5
6
7
8
9
三种循环的区别及其共同点
区别:每个循环语句的写法都不一样。

注意:do…while循环,即便条件不成立,也会先执行一次
建议:有变量自增自减,条件明确的时候,直接使用for循环,写起来好看,且省事。

共同点:三个都是用来重复执行某段代码的

是不是发现有问题?2月有30号,1月没有31?哈哈哈,接下来的选择语句会解决这个问题。

选择执行语句
选择选择,就是视情况而定。

if … else … 语句
int month = 1;//可以修改month,查看输出对不对
int day = 30;
if(month<1||month>12){
System.out.println(“没有这个月份的存在!”);
}
if(month<8&&month%21||month>7&&month%20){//如果月份是1,3,5,7,8,10,12
day = 31;
} else if(month==2){//如果是2月就是29天
day = 29;
} else day=30;
System.out.println(“2020年”+month+“月,有”+day+“天”);

1
2
3
4
5
6
7
8
9
10
11
12
switch语句
int month = 1;
int day = 0;
if(month<1||month>12){
System.out.println(“你填了个寂寞”);
}
switch(month){
case 2:
day = 29;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
default:
day = 30;
}
System.out.println(“2020年”+month+“月,有”+day+“天”);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
方法的定义
方法和变量差不多,就是在名字后面多了对小括号和大括号。大括号内,写这个方法该做说明事情。这里就会有一个关键词: return

方法的定义格式:访问权限 数据类型 方法名(方法体参数)

访问权限
这个暂时不用考虑,可以不写
数据类型,表示这个方法,返回值类型。
当方法只做操作,不需要传递数据值的时候,就写个 void
如果这个方法体,做一些事情,要传递一个数据出去,传递出去的数据类型是什么,方法的数据类型就是什么。
写完一个需要传值的方法体,在最后需要写上 return a; 此时这个a就是你要传出去的值
方法名
方法名自己随便定义,命名格式也是按照小驼峰命名法走
方法体参数
这里填的是,你需要这个方法,进行操作的一个或多个变量。中间用,隔开。如果没有,就不写。
int add(int x,int y){//需要传递变量,这里x,y是形参,随便取名,不影响。
return x+y;//返回一个int类型的x+y的值
}
1
2
3
最后大作业:(Demo.java)

public class Demo{
public static void main(){
xiuEnAi();
}
public static void xiuEnAi(){
//这里有一个static,是为了可以直接放在main方法里面运行的原因
int day2=31;
int count=0;//记录你的恋爱天数
for(int month=1;month<13;month++){//打印2020全年
switch(month){
case 2:
day2 = 29;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day2 = 31;
break;
defalut:
day2 = 30;
}
for(int day=1;day<=day2;day++){
count++;
System.out.println(“2020/”+month+"/"+day
+", 这是我爱Java编程的第"+count+“天”);
System.out.println(2020%4==0?“2020年是平年”:“2020年是闰年”);//这是三目运算符的用法。
}
}
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
三目运算符:条件?正确时执行的语句:错误时执行的语句

数组
数组,简单说,这是一个数据组队打团的故事。。。

出现原因:
有时候我们需要一种类型的变量很多,比如一个球队,人就很多1号球员,3号球员的,一个个定义太慢。数组就出来了。

其定义方法:

一维数组:int[] a = new int[4]; 或 int[] a = {1, 2, 6, 3, 4};
表示定义了一个能存4个int类型的a数组,可以认为是a队。

二维数组:char[][] b = new char[5][6];
二维数组一般很少用,初始化可以用for循环。要是直接给值,网上有很多,不赘述。

数组的使用需要注意,其下标是从0开始的,即,长度为4的a数组,其所有元素为:a[0]、a[1]、a[2]、a[3]。

总结
Java语法知识不多,但却是最重要的。变量的声明很有讲究的,大括号里面声明的变量,在大括号外面用不了。如果需要一些变量长期有效,那就往外提。基础最重要嘛。顺带一提就是&&和||分别叫做短路与和短路或

也就是说,&&前面的条件为false,后面无论对错,都不会进行判断,即便可能运行会报错的问题,也不会去管。短路或就是前面是对的,后面对错也就不管了。

可以试试这段代码

int i=0;
if(i==0||6/i>0) System.out.println(“程序没问题”);
1
2
IEEE 754:
float:4字节(32bit),IEEE 754. 取值范围:[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38] 。
double: 8字节(64bit) ,IEEE 754. 取值范围:[-1.79769313486231570e+308,-4.94065645841246544e-324] ∪ [4.94065645841246544e-324,1.79769313486231570e+308] 。 ↩︎

Java基础语法及其经验总结相关推荐

  1. JAVA基础语法——面向对象思想

    Java基础语法 前言 一.面向对象思想 1.面向对象(OOP)概述 2.面向对象三大特性五大原则 二.类和对象 1.对象和类的概念 2.对象的特征 3.构造方法 3.This关键字 4.static ...

  2. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  3. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

  4. Java基础语法(一)

    Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...

  5. Java基础语法初学者了解

    Java语言的特点 简单的面向对象语言 跨平台与解释执行 可以做到一次编译,到处执行. (Java跨平台,Java虚拟机不跨平台) 在具体的机器运行环境中,由Java虚拟机对字节码进行解释执行.通过定 ...

  6. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /*** 功能:单列模式* @author Administrator**/ public class SingletonTest {public static v ...

  7. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  8. (31)Java基础语法 --接口

    目录 1.接口的概述 2.接口的定义格式 3.在接口中定义抽象方法 4.定义接口的 实现类 5.接口的使用 接口练习 6.接口的特点 7.一个实现类可以同时实现多个接口 8.接口的继承 9.设计提示 ...

  9. Java基础语法02-流程控制

    Java基础语法2 1 流程控制 1.1 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程. ...

最新文章

  1. cocos2d-x的win32编译环境
  2. C++实现求字符串的所有的组合
  3. BERT和ERNIE谁更强?这里有一份4大场景的细致评测
  4. Kubernetes安装之五:配置kubectl客户端
  5. 共享单车,信息安全应未雨绸缪
  6. js、react对象名和对象属性赋值
  7. 石头剪刀布程序流程图_石头剪刀布!我要与电脑决战到天明!(14天)
  8. android jni fork()子进程不运行_Android高级面试谈谈Zygote的理解
  9. 52 FI配置-财务会计-固定资产-折旧-定义终止值代码
  10. python一加到二十等于多少_Python 3.1新变化之性能改善篇(转载)
  11. 10g数据库入门与实践 oracle_修改oracle数据文件大小 报错:ORA-03297
  12. qml入门学习(三):Item
  13. 开源容器集群管理系统Kubernetes架构及组件介绍
  14. 徐松亮硬件教学-微波天线设计-基于HFSS软件的天线设计流程
  15. 好家伙!MIT博士生凭借「扭动奥利奥饼干」发了篇论文!
  16. 软件性能测试完整指南
  17. PHP网站接入QQ互联实现QQ登录获取用户信息功能,超级简单,三个文件就搞定,无需费力地去了解官方提供的一大堆Demo文件
  18. Gephi启动错误:Cannot load even default layout, using internally predefined
  19. 最简单的 iPad 屏幕适配方案
  20. 给女朋友道歉的java代码_我用开源工具给女朋友写道歉信!

热门文章

  1. imovie打开视频卡死解决办法
  2. VGGnet论文解读及代码实现
  3. 【数据库基础知识】plsql安装及配置
  4. mongodb更新操作符
  5. java冒泡排序法对数组进行排序
  6. java setlayout_Java Button.setLayoutX方法代码示例
  7. java中的provide,vue3 provide ref
  8. linux变量存储命令,如何将命令存储在shell脚本中的变量中?
  9. 【4747】java语言程序设计(一)2011年10月考试复习资料_全国2011年10月自考Java语言程序设计(一)试题3...
  10. 负责指挥与控制整台电子计算机,2011秋季计算机应用基础期末考试卷(修改)