@一贤不穿小鞋

1.变量

  • 计算机内存中一块存储空间,是存储数据的基本单元。
  • 变量是内存地址的别名。

1.1:变量的三要素(三个组成部分)

  • 变量名(采用驼峰式命名法),变量数据类型,变量值.
    (java是一种强类型的语言),变量名采用驼峰式命名法.
  • 变量命名
    首字母(字母、下划线_、钱符号$)+其余部分(任意多的数字、字母、下划线、钱符号)。
    常见错误:未赋值就输出,变量名命名不正确,命名重名(大写与小写区分不重名)。

1.2:变量数据类型与变量值的类型要一致

1.3:变量必须先声明赋值后,才能使用.

  • =叫赋值号:将=右边的值赋给左边.

1.4:变量声明和赋值的语法:

1.4.1:直接声明变量的语法:数据类型 变量名;

eg://声明变量String name;

1.4.2:声明变量的同时赋值: 数据类型 变量名=值;

     eg:int age=18;float height=1.7f;char sex='女';float wangHeight=1.8f;boolean result=height>wangHeight;double weight=40.5;long money=1000000000000L;

1.4.3:变量赋值的语法:变量名=值;

         name="老师";name="薛强";

1.4.4:同时声明多个相同数据类型的变量并赋值:声明了三个变量,只给变量名2赋值.

  • 数据类型 变量名1,变量名2=值2,变量名3;
     eg://声明多个相同数据类型的变量,给部分变量赋值String name1,name2="张三",name3,name4,name5;

1.5:在同一个范围内不能出现相同变量名

 (目前来理解在同一main方法不能声明两个相同变量)

1.6:(了解)可以同时声明多个相同变量然后赋值:

  • 数据类型 变量名1,变量名2=值,变量名3;
     eg:String name1,name2,name3="操礼建",name4,name5="樊章龙";System.out.println("第五个学生姓名:"+name5);System.out.println("第三个学生姓名:"+name3);

1.7:常量:一但赋值不可更改.

  • 常量声明和赋值语法:final 数据类型 常量名=值;
     eg:final char XUE_SEX='男';//XUE_SEX='女';eg://声明常量 //final double PI=3.1415926;final double PI;PI=3.12;

1.8:变量的分类:

1.8.1:按数据类型来分:

  • 基本数据类型的变量:变量的数据类型是byte,short,int,long,float,double,boolean,char
  • 引用数据类型的变量:变量的数据类型是String,数组,集合,类,接口

1.8.2:按变量声明的位置分:

  • 局部变量:在方法中声明的变量.作用范围仅在声明它的大括号中有效.
  • 成员变量:在类中方法外面直接声明的变量.

2.java中常用数据类型

2.1:基本数据类型:

  • 整数:byte(1个字节),short(2个字节),int(4个字节),long(8个字节,值后面加L)
    (一般整数默认就是int)
  • 浮点数(小数型的):float(4个字节,值后面加f),double(8个字节) (一般小数默认是double)
  • 布尔类型的数:boolean(值只能是true/false)
  • 字符类型:char(1个字符,也就是两个字节,值要用单引号)
    说白了就是一个字符存一个字母,或一个汉字,或一个标点符号。
eg://声明变量的同时赋值int age=18;float height=1.72f;double weight=50.5;char sex='女';

2.2:引用数据类型:字符串(String),数组,集合,类,接口

eg:public static void main(String[] args){//声明变量String name;//给变量赋值,字符串要用""赋值name="老师";name="薛强";//在声明变量的同时赋值,整数和小数可以直接给值,char类型要用''给值int age=18;float height=1.7f;char sex='女';float wangHeight=1.8f;boolean result=height>wangHeight;double weight=40.5;long money=1000000000000L;//声明常量final char XUE_SEX='男';//XUE_SEX='女';System.out.println("姓名为:"+name);System.out.println("年龄为:"+age);System.out.println("性别为:"+sex+",体重为:"+weight);System.out.println("身高为:"+height);System.out.println("我比王祥醒高:"+result);System.out.println(name+"的性别为:"+XUE_SEX);System.out.println("银行的存款:"+money);}

2.3:char虽然存一个字符,但是由于ASCII和Unicode(万国码)码表对应,部分数字用ASCII可以转换为单个字符,Unicode(万国码)码转换为单个字符,所以char可以存部分数字(0-65535)

eg://本来char只能存一个字符,因为每个字母都有对应ASCII码表对应,
所以char能存数字,前提是这个数字在ASCII码表中对应一个字符char num1=66;//本来char只能存一个字符,因为有万国码,每个万国码对应一个字符,
所以char类型可以存万国码.char num2='\u0041';
     eg://char与ansii码,unicode码使用char c1='A';char c2=65;//A对应ansii码char c3='\u0041';//A对应unicode码System.out.println("c1="+c1+",c2="+c2+",c3="+c3);

3.转义字符:所有转义字符必须全定在""中

eg:System.out.println("年\t龄为:"+age+",\n身高为:"+height);

4.数据类型转换

4.1:自动类型转换:语法: 目标大数据类型 变量名=原小数据类型的变量

  • 兼容:同种类型
  • 两种类型要兼容.
  • 目标类型大于原类型(小转大)
     eg:int num1=11;//自动类型转换,int->long//long类型中存的值如果是在int范围内可以不带L,超过int范围是一定要带Llong num2=num1;System.out.println("num2="+num2);//自动类型转换float num3=num1;double num4=num1;System.out.println("num4="+num4);

4.2:强制类型转换 语法:目标小数据类型 变量名=(目标小数据类型)原大数据类型的变量

  • 两种类型要兼容.
  • 目标类型小于原类型(大转小)
     eg://强制类型转换float num5=22.0f;int num6=(int)num5;System.out.println("num6="+num6);//强制类型转换double num7=6.88;int num8=(int)num7;System.out.println("num8="+num8);float num9=(float)6.18;System.out.println("num9="+num9);

4.3:int与char之间转换:(原因就ascii码和unicode码)

4.3.1:char转换为int

eg://char从  ascii码编码0-255 ,unicode码/u0000-/uffff(0-65535)内数字或字符或编码都自动转换为类型char c1=65535;char c2='A';char c3='我';int num11=c3;System.out.println("num11="+num11);

4.3.2:在码表范围内int类型转换为char类型,要进行强制类型转换

     eg:int num12=65;char c4=(char)num12;System.out.println("c4="+c4);

4.4:byte类型int:当一个数赋值给变量时,超过变量取值范围,就在这个范围内转圈圈

     byte b1=11;//11byte b2=11+11;//22//byte b3=200;//报错//当一个数赋值给变量时,超过变量取值范围,就在这个范围内转圈圈byte b3=(byte)200;//-56=200-(取值范围中数127+128+1)byte b4=(byte)2000;//-48=2000-(取值范围中数127+128+1)*nbyte b5=(byte)273;//17

5.运算符:

5.1:算术运算符:+,-,*,/,%,++,- -

5.1.1:-,*与数学中用法是一样的,算术运算.

5.1.2:+:如果+左右两边是数字,作算术运算

  • 如果+左右两边有一边是字符串,起连接作用
     eg:int num1=11;//起算术运算int num2=11+22;//起连接作用System.out.println("num2的值为:"+num2);//第一个+起算术运算,第二个+起连接作用System.out.println(1+1+"1");//21//两个+起连接作用System.out.println("1"+1+1);//111

5.1.3:/:算术运算,在java中 整形数字=整形数字/整形数字;

     eg://除法运算int num3=9/3;//3int num4=10/3;//3

5.1.4:%(求余/取模):求两个数的余数.

     eg://求余运算int num6=10%3;//1

5.1.5:在算术运算中,有一个数为大类型,则结果为大类型

     eg:double num5=10/3.0;System.out.println("num5="+num5);
     //给你一个随机四位数,算出各位数之和.eg: 1234 结果10int num=3456;int qianWei=num/1000;int baiWei=num/100%10;int shiWei=num/10%10;int geWei=num%10;int sum=qianWei+baiWei+shiWei+geWei;

5.1.6:++:自身+1,- -:自身-1

  • 如果++在变量的前面,变量先自身加1,再参与运算.
  • 如果++在变量的后面,变量先参与运算,再自身加1.
  • 如果–在变量的前面,变量先自身减1,再参与运算.
  • 如果–在变量的后面,变量先参与运算,再自身减1.
 eg:int count1=10;//int result1=++count1;//11 ->count1=count1+1//11,result1=count1//int result2=count1--;//11->result2=count1//11,count1=count1-1//10//System.out.println("result1="+result1+",result2="+result2);//System.out.println("count1="+count1);//10   //int result3=(count1--)+(++count1)+count1*count1;//120//result3=(10)+(++count1)+count1*count1; count1=9//result3=(10)+(10)+count1*count1; count1=10int result4=(++count1)+(count1--)+(--count1)*(++count1);//112//result4=(11)+(count1--)+(--count1)*(++count1); count1=11//result4=(11)+(11)+(--count1)*(++count1); count1=10//result4=(11)+(11)+(9)*(++count1); count1=9//result4=(11)+(11)+(9)*(10); count1=10System.out.println(result4);

5.2:关系运算符:表比较,>,>=,<,<=,==(表示相等),!=(表示不相等)

     eg:int num1=11;int num2=13;boolean result1=num1==num2;System.out.println("result1="+result1);boolean f1=true;//对boolean f2=f1;//对//boolean f3==f2;//错boolean f4=f2=f1;//对//先进行==,再=赋值boolean f5=f2==f1;//对

5.3:逻辑运算符:且(&,&&),或(|,||),非(!)

  • 且:左右两边的式子为true,结果就为true,如果左右两边有一个式子为false,结果为false.
    &:&左右两边的式子无论是true或false,两个式子都会执行.
    &&(短路且):&&左边的式子为false,右边的式子不会执行.
  • 或:左右两边的式子有一个为true,结果就为true,两边都为false,结果才为false
    |:|左右两边的式子无论是true或false,两个式子都会执行.
    ||(短路或):||左边的式子为true,右边的式子不会执行.
     eg:int num3=10;//boolean result2=(++num3)<10&(--num3)<10;//&左右两边都执行num3=10//boolean result2=(++num3)<10&&(--num3)<10;//&&左边为false,右边不执行num3=11//boolean result2=(++num3)<10|(--num3)<10;//|左右两边都执行num3=10//boolean result2=(++num3)<10||(--num3)<10;//||左边为false,两边都执行num3=10boolean result2=(++num3)>10||(--num3)<10;//||左边为true,右边不执行num3=11System.out.println("num3="+num3);//11

5.4 赋值运算符:=,+=,-=,*=,/=

5.4.1:=:将=右边的值赋值给左边.

5.4.2:+=,-=,*=,/=:将符号左边的数加上或减去或乘或除以右边的数,将结果赋值给左边.

     eg://=的使用int num=23;//+=的使用num+=20;//<=>num=num+20System.out.println("num="+num);

5.5 运算符优先级

  • ()>算术运算符>关系运算符>逻辑运算符>赋值运算符

6.三目运算符(三元运算符):

  • 语法 :关系表达式?值1:值2
  • 执行特点:
    如果关系表达式结果为true,整个式子结果为值1;
    如果关系表达式结果为false,整个式子结果为值2;
eg:public static void main(String[] args){//声明三个变量存三个值int num1=8;int num2=10;int num3=6;//声明一个变量存前两个数中最大值int max1=num1>num2?num1:num2;//声明一个变量存前两个数中最大值与第三个值比较求最大值int max=max1>num3?max1:num3;System.out.println("三个数中最大值为:"+max);}

7.表达式:操作数+运算符.

  • 算术表达式:式子中只有算术运算符和操作数.算术表达式的结果是数值
  • 关系表达式(布尔表达式):只要式子有关系运算符.关系表达式的结果是boolean.

8.控制台输入(从键盘上接收数据):三步

  • 第一步:导包导在类的上面
    import java.util.Scanner;
  • 第二步:获得从键盘上接上数据的能力
    Scanner input=new Scanner(System.in);
  • 第三步:用这个能力得到指定类型的值
    接收int类型的值 input.nextInt();
    接收double类型的值 input.nextDouble();
    接收String类型的值 input.next();
    接收Char类型的值 input.next().charAt(0);
  • 注意:如果接收值与要求数据类型不匹配,会报InputMismatchException
  • 不能从键盘上直接接收char类型的数据,如果想接可以用String类型接收,或者接收一个字符串只要它的第一个字符:input.next().charAt(0);
eg://第一步:导包
import java.util.Scanner;/**
*从键盘上接收用户输入的数据
*@auth sx
*@version 1.0 2020-10-09
*/
public class ScannerTest{/***程序的入口方法*/public static void main(String[] args){//第二步:获得具有从键盘上接收数据的能力Scanner input=new Scanner(System.in);System.out.println("请输入一个整数:");//接收键盘上输入的数据并存在一个变量中int num1=input.nextInt();System.out.println("请输入一个带小数点的数:");//接收键盘上输入的数据并存在一个变量中double num2=input.nextDouble();System.out.println("请输入用户名:");//接收键盘上输入的数据并存在一个变量中String name=input.next();System.out.println("请输入性别(男/女):");//接收键盘上输入的数据并存在一个变量中String sex=input.next();System.out.println("接收整数为:"+num1+",小数为:"+num2+",用户名为:"+name+",性别为:"+sex);}
}

总结:
1.标识符命名规范.
2.关键字
3.变量
4.数据类型
5.数据类型转换
6.运算符:算术运算符,关系运算符,逻辑运算符

2.java的基本语法相关推荐

  1. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍

    Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...

  2. 浅析java中的语法糖

    概述 编译器是一种计算机程序, 它主要的目的是将便于人编写.阅读.维护的高级计算机语言所写的源代码程序, 翻译为计算机能解读.运行的低阶机器语言的程序, 即可执行文件.而 javac 就是java语言 ...

  3. Java高阶语法---final

    背景:听说final Java高阶语法是挺进BAT必经之路. final: final关键字顾名思义就是最终不可改变的. 1.含义:final可以声明成员变量.方法.类和本地变量:一旦将引用声明为fi ...

  4. java语言基本语法_Java语言基本语法

    Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为"标识符": 标识符由字母.数字. ...

  5. java字节型的关键字_DAY06-07 Java的基础语法-注释、标识符、关键字、数据类型

    Java的基础语法 注释 注释不会被执行,是给人看的 书写注释是一个非常好的习惯. 注释类型: (1)单行注释:// 注释内容 (2)多行注释:/ * - 注释内容-. * / (3)文档注释:/* ...

  6. 大数据必学Java知识(一):Java基础入门语法和安装

    Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...

  7. Java正则表达式的语法与示例

    Java正则表达式的语法与示例 正则表达式是什么?用我的理解就是一个表达式.用来匹配,替换,判断字符串,之前业务就出现过判断返回值是否为邮箱. 以下内容来自于http://baike.xsoftlab ...

  8. Java基础1语法准备

    77集程序底层执行 初识Java 1.1计算机语言发展史以及未来 计算机语言经历了三代:第一代是机器语言,第二代是汇编语言,第三代是高级语言. ·第一代语言:机器语言(相当于人类的原始阶段) 机器语言 ...

  9. 阿里云面试:什么是语法糖?Java中有哪些语法糖?

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  10. Java中的语法树结构

    1.JCTypeParameter 1 class B<T extends CA&IA&IB> { ...} 截图如下: 接口继承了StatementTree接口,而实现类 ...

最新文章

  1. 【转载】图像缩放与插值理论基础
  2. 开机时没有显示Administrator
  3. kali linux 设置固定IP地址步骤
  4. 上传一批动画教程(链接已失效)
  5. Activity的启动流程
  6. leetcode529. 扫雷游戏(dfs)
  7. 查询各个科目成绩前三的记录
  8. 使用Java8改造出来的模板方法真的是yyds
  9. 基于springMVC的页面跳转、转发、重定向等
  10. ESS And 迅雷5 让我不能上网
  11. win10电脑显示无法自动修复此计算机,win10系统无法自动修复此计算机的操作步骤...
  12. ITIL4考试练习题
  13. ArcGIS中的GeoDatabase(地理数据库)功能,你可能不够了解
  14. html炫酷在线,html单页炫酷
  15. 100人PJ?へへ。バージョン1.0の反省書を書かなければなりません、今日。
  16. 自我救赎段子_为什么技术可以成为现代教育和学习的救赎之恩
  17. javaScript判断当前浏览器(谷歌、火狐、IE)兼容IE11
  18. 不填写内容用哪个斜杠代替_反斜杠
  19. 30个令人捧腹的关于码农和编程的笑话
  20. 微软 Azure人工智能认知服务打造语音提醒喝水助手(带源码和演示地址)

热门文章

  1. 计算机视觉任务怎么选?CV主要任务是什么?
  2. 中考英语考前速记68条语法要点
  3. 断言assertthat用法
  4. QT中显示GIF图片
  5. 编程在人们心中的误区!
  6. 做一个衣柜广告的HTML,衣柜广告语、宣传语
  7. iTerm2中配置SSH连接Linux服务器的快捷方法
  8. 基于位置的社交网络中的poi推荐
  9. Float 数字的几个特殊数值:Nan, infinite, -infinite, 0
  10. 分布式追踪与监控:Skywalking