1.java基本语法
一.数据和数据类型
(一)标识符:给变量、常量、方法类、对象等命名的符号
(二)变量和常量
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基本语法的更多相关文章
- 【转】详解Java正则表达式语法
(转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...
- C++与Java的语法区别
C++与Java的语法区别 首先,两个大的不同是主函数和怎样编译的不同,接下来是许多小的区别. main 函数C++//自由浮动的函数int main( int argc, char* argv[]) ...
- Atitti.java exp ast java表达式语法ast构造器
Atitti.java exp ast java表达式语法ast构造器 /atiplat_cms/src/com/attilax/lang/AstParser.java 原理 分割tokens_sli ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- JAVA正则表达式语法大全
[正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...
- java基础语法笔记
这段时间看了一些java,急了一些笔记,记下一遍以后复习用! 2016-07-24 15:12:40 java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方 ...
- Java基础语法(下篇)
Java基础语法(下篇) 内容概要: (1)函数的定义 (2)函数的特点 (3)函数的应用 (4)函数的重载 ...
- Java基础语法(上篇)
Java基础语法(上篇) 知识概要: (1)关键字的表示与规范 (2)标示符 (3)注释 (4 ...
- java——基础语法
java基础语法 1.关键字:java赋予特殊含义的单词. 2.标识符:程序中开发人员自定义的名词,例如:类名,函数名,变量名(注意事项:①不能以阿拉伯数字开头②不能采用关键字). 3.常量:固定的数 ...
- java基础语法(二)--单列模式
java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public sta ...
随机推荐
- HttpWebResponse 四种accept-encoding解析(gzip, deflate, br,identity)
HttpWebResponse 四种accept-encoding解析(gzip, deflate, br,identity[默认]) var hwrs = (HttpWebRe ...
- 1792. 最大平均通过率 (Medium)
问题描述 1792. 最大平均通过率 (Medium) 一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试.给你一个二维数组 classes ,其中 classes[i] = ...
- 【C学习笔记】【分享】day2-2 不允许创建临时变量,交换两个数的内容(附加题)
加法实现: #include <stdio.h> int main() { int a = 30; int b = 20; a = a + b; b = a - b; a = a - b; ...
- el-table 如果文字过多展示...
1 <el-table-column label="任务名称" width="120px" align="center" :show- ...
- [336] Prelude PTS OpCodes
[336] Prelude PTS Client 00 SendProtocolVersion 01 MoveBackwardToLocation 02 Say 03 RequestEnterWorl ...
- 使用powerdesigner连接MySQL并设置逆向工程
使用powerdesigner连接MySQL并设置逆向工程 环境:powerdesigner15.1 MySQL5.7 win10 X64 1.安装mysql-connector-odbc-5.3.8 ...
- luogu 4142
费用流好题 本题的建图很有意思 正常我们看到棋盘问题应该先对整个棋盘黑白染色构成一个二分图,然后再考虑建图的问题 但是本题题目中已经明确区分了不同的斜线,问题在于怎么保证一个"L" ...
- LeetCode系列之 (JavaScript) => 53. 最大子数组和
题目描述: leetcode 题目链接: 53. 最大子数组和 - 力扣(LeetCode) (leetcode-cn.com) 解题思路分析: 题干最终的输出是连续子数组的最大和:1. 贪心算法: ...
- 快学起来!python入门自学必看
记得刚开始学python的时候,各种买书各种找资料,最后发现资料找了一大堆,但都是东一块西一块,内容不全且不系统,无意间发现这个宝藏网站,真的是太全了,当作工具书,时不时的翻翻,总会发现一些惊喜.0基 ...
- 5、Excel—在做车辆费用汇总的时候,复制出来的数据跟同事的一样,但是合计总数就不一样
在做车辆费用汇总的时候,复制出来的数据跟同事的一样,但是合计总数就不一样, 刚开始以为是数值问题,明明两份Excel都是同样的数据,为什么合计就不一样呢?(根据同事那份的数据,然后手动在自己的exce ...