一.数据和数据类型

(一)标识符:给变量、常量、方法类、对象等命名的符号

(二)变量和常量

1.变量:值在运行时可以改变的量;

每个变量属于特定的数据类型,使用前要先声明,然后赋值,初始化或赋值后才能使用。

2.常量:

(1)直接量/字面量:通过源码直接给出的量,用文本串表示,可以区分不同类型。

(2)常量:在程序运行期间保持不变的量

  final定义常量----用符号表示常量

  final double PI = 3.14159;

(三)数据类型

1.大纲

(1)基本数据类型

①数值类:包括整数类型(byte,short,int,long)和浮点类型(float,double)

②字符型:char

③希尔型:boolean

(2)引用数据类型

①类:class

②接口:interface

③数组:[]

注意:

(1)java是一种“强类型”语言,所有的变量必须先声明后使用;指定类型的变量只能接受类型与之匹配的值。

(2)在编译时进行更严格的语法检查,减少编程错误。

2.详细说明

(1)整数类型

特点:无小数部分;允许负数

byte、short、int、long;

没有unsigned类型

整数占用的存储空间与代码所在机器无关

直接给出的一个整数值默认是int类型

  1)整数常量赋值给byte或short类型的变量

    ①系统会把这个整数值当成byte或short来处理;例如byte i  = 10;

    ②超出byte和short范围,报错

  2)如果使用一个超出int类型的整数值

    ①该整数不会被当作long类型处理,报错

    ②若被当作long类型处理,加L作为后缀

public static void main(String[] args)
{
int i = 10;
int j = 100000000000000000000;//过大的整数
int j2 = 1000000000000000000000L;//错误:不可兼容的类型
//从long转换到int可能会有损失 long k = 11;
long k = 111111111111111111111;//过大的整数 byte b1 = 100;
byte b2 = 1000;//错误:不兼容的类型;
//从int转换到byte可能会有损失
}

(2)字符类型

  用于单个的字符

  用 ‘ ’ 表示字符常量

    char c1 = 'a';
char c2 = '人';

(3)浮点类型

  java中的实数类型

    -float(4字节、单精度)

    -double(8字节,双精度)

  有个顶的表数范围和字段长度,字段长度、表数范围都与机器无关

  两种表示方法:

    ①十进制形式

      ②科学计数法

  Java中的浮点类型常量值默认为double型,若声明一个float型,需要在数字后面加上f或F。double a = 12.3;float f = 12.3f;

public static void main(String[] args)
{
//float f = 123.4;//不兼容的类型,默认是double
float f = 123.4f;
//double d = 1234567890222222;//不加小数点异常,默认是整数
double d = 1234567890222222.0; float f1 = 1234.5f;
float f2 = 1.2345e+3f;//科学计数法 }

(3)浮点类型

  -float的范围:2^-149~2^128 -1

  -double的范围:2^-1074~2^1074-1

  -浮点数无法进行精度比较

(4)布尔类型

    boolean类型,表示逻辑上的“真”和“假”

    取值:true和false

      -只能取true和false,不能用0或非零整数来代替。

      -不能与其他基本数据类型的值互相转换

    注意:如下两个条件判断,参数必须是布尔类型,不能是整型

if()
while()

(5)基本类型数据之间的转换

  1)类型的自动转换(兼容转换)

   -表数范围大的类型向下兼容表数范围小的类型

   -把一个表数范围小的变量或数值直接赋值给另一个表数范围大的变量时,可进行类型的自动转换。

  2)强制类型转换

    

double pi = 3.1415926;
int p = (int)pi;

  注意:表数范围大的类型转换成表数范围小的类型时,要加强制转换符,但可能降低精度或造成溢出。

  3)多种类型混合运算:

    ①系统自动将所有类型转换成表数范围最大的类型,再进行计算;

    ②byte、short、char、互相之间不转换,用时全部自动转换成int类型。

思考:函数重载与类型自动转换

  

import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int m1 = in.nextInt();
double m2 = in.nextDouble();
System.out.println((test1(m1)));
System.out.println(test1((m2)));
}
public static double test1(double m)
{
return m;
}
public static int test1(int m)
{
return m;
}
}

二.运算符

1.运算符是用来完成一个动作(数据的运算、赋值、比较等)的特定语言的语法记号。

(1)赋值运算符:=、+=、-=、*=、/=、%=

(2) 增减运算符:++、--

(3)算数运算符:+、-、*、/、%

(4)比较运算符:==、!=、>、>=、<、<=、返回boolean

(5)逻辑运算符:&&、||、!、^、&、|

(6)位运算符:&、|、~、^、>>、<<

(7)三目条件运算符:x?y:z

2.运算符的优先级

  +:除了作为加号外,还可以作为字符串连接符。

三.流程控制

任何程序流程均可以用顺序结构、选择结构、循环结构这三种基本控制结构实现

  -顺序结构

  -两种选择语句:if、switch

  -循环语句:while循环、do_while循环、for循环

四、方法(函数)

返回值类型 函数名(形参){……}

  -形参和实参的含义,匹配(类型、顺序、数量)

  -必须返回和返回值类型一致的数据

  -没有返回值,则函数的返回值类型应为void

  -调用方法:

    对象名.方法(实参)

    类名.静态方法(实参)

  -Java函数调用的参数传递形式

    值传递

    引用传递(非对象本身)

五、Scanner类

public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
boolean b1 = s.hasNextInt();//是否下一个是整数
int i = s.nextInt();
boolean b2 = s.hasNext();//是否还有字符串,忽略空格
String str1 = s.next();//读取字符串,去掉开头空格,遇空格结束
String str2 = s.nextLine();//完整读一行,结果为字符串
}

1.java基本语法的更多相关文章

  1. 【转】详解Java正则表达式语法

    (转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...

  2. C++与Java的语法区别

    C++与Java的语法区别 首先,两个大的不同是主函数和怎样编译的不同,接下来是许多小的区别. main 函数C++//自由浮动的函数int main( int argc, char* argv[]) ...

  3. Atitti.java exp ast java表达式语法ast构造器

    Atitti.java exp ast java表达式语法ast构造器 /atiplat_cms/src/com/attilax/lang/AstParser.java 原理 分割tokens_sli ...

  4. java面向对象编程——第二章 java基础语法

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

  5. JAVA正则表达式语法大全

    [正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...

  6. java基础语法笔记

    这段时间看了一些java,急了一些笔记,记下一遍以后复习用! 2016-07-24 15:12:40 java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方 ...

  7. Java基础语法(下篇)

     Java基础语法(下篇) 内容概要:        (1)函数的定义        (2)函数的特点        (3)函数的应用        (4)函数的重载               ...

  8. Java基础语法(上篇)

                     Java基础语法(上篇) 知识概要: (1)关键字的表示与规范       (2)标示符              (3)注释                (4 ...

  9. java——基础语法

    java基础语法 1.关键字:java赋予特殊含义的单词. 2.标识符:程序中开发人员自定义的名词,例如:类名,函数名,变量名(注意事项:①不能以阿拉伯数字开头②不能采用关键字). 3.常量:固定的数 ...

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

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

随机推荐

  1. umi build出现的Path must be a string的问题解决

    问题 使用umi build出现的Path must be a string恶心解决方法 umi build出现的Path must be a string的问题解决 解决方案 参考链接:https: ...

  2. 2019-2020-1 20199318《Linux内核原理与分析》第九周作业

    第8章 进程的切换和系统的一般执行过程 一.学习总结 Linux系统的一般执行过程: 最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程. (1)正在运行的用户态进程X; (2)发生中断 ...

  3. 前端之JavaScript(Js)基础

    JavaScript,简称Js HTML三把利剑之一,浏览器可解析Js,看着和Java像,实则和Java并无关系,和Python.Go.C++等都是一门独立的语言. 一种轻量级的编程语言. 可插入 H ...

  4. 软件离线许可(License)实现原理

    我们经常使用各种开发软件,比如IntelliJ IDEA.Navicat.Visual Studio等,这些软件都有一个特点,就是要收费.一般是我们需要去购买一个许可,然后输入这个许可到软件里就能够使 ...

  5. bootstrap-treeview手动修改源码添加与后台交互的id

    bootstrap-treeview中只有自增的参数data-nodeid,没有id的参数,不方便后台交互,修改源码添加id. 1.图一为添加的自定义的node.Id; 2. 下图为添加的id 3.后 ...

  6. 5分钟上手使用vuex,vuex状态管理,vuex遇到的坑

    很多刚学习vue的人对于全局变量管理工具vuex都觉得很神秘,今天就用很通俗的大白话协助大家理解一下vuex,作者的vue项目使用vue脚手架搭建的,用脚手架搭建的项目会在src文件夹下有一个stor ...

  7. PostScript语言教程(六、图形变换)

    6.1.坐标系变换 POSTSCRIPT图形操作是在一个坐标系中,这个坐标系被称为用户坐标系或用户空间,该坐标系独立于任何物理设备.POSTSCRIPT在用户空间中进行绘制,并将结果传输到特定的打印机 ...

  8. Kubernetes--创建Ingress资源

    创建Ingress资源 Ingress资源是基于HTTP虚拟主机或URL的转发规则,它在资源配置清单的spec字段中嵌套了rules.backend和tls等字段进行定义.下面的示例中定义了一个Ing ...

  9. Mysql语句练习

    某宾馆其关系模式如下:Room(房间编号,房间类型,价格)Customer(顾客编号,顾客姓名,年龄,电话)RC(房间号,顾客编号,入住日期,入住天数) 1 create database Hotel ...

  10. HFSS仿真疑问

    P15针在0.5pitch下,GS结构相比GSG更接近50Ω,但是在某些频点会有明显的反射,该频点插损比较大. 从TDR上看,阻抗呈正弦形状变化,有些奇怪. 空气盒子只增加了2mm,试了一下将空气盒子 ...