Java初体验

目录

  1. jdk的重要版本
  2. 第一个编程
  3.  代码解释和注释
  4.  标识符
  5.  变量(variable)
  6.  常量(Constant)
  7. 数据类型
  8. 数值型表现形式
  9. 转义字符
  10. 数据类型转换
  11. 运算符


jdk的重要版本

1.2

1998-12-08 Playground(操场)
– 集合框架;
– JIT(Just In Time)编译器;
– 对打包的Java文件进行数字签名;
– JFC(Java Foundation Classes), 包括Swing 1.0, 拖放和Java2D类库;
– Java插件;
– JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型;
– Applet中添加声音支持

1.5

2004-09-30 Tiger(老虎)
– 泛型;
– 增强循环,可以使用迭代方式;
– 自动装箱与自动拆箱;
– 类型安全的枚举;
– 可变参数;
– 静态引入;
– 元数据(注解);
– Instrumentation

1.7

- 2011-07-28 Dolphin(海豚)
- switch语句块中允许以字符串作为分支条件;
- 在创建泛型对象时应用类型推断;
- 在一个语句块中捕获多种异常;
- 支持动态语言;
- 支持try-with-resources(在一个语句块中捕获多种异常);
- 引入Java NIO.2开发包;
- 数值类型可以用二进制字符串表示,并且可以在字符串表示中添加下划线;
- 钻石型语法(在创建泛型对象时应用类型推断);
- null值得自动处理

1.8

2014-03-18– Lambda 表达式 − Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。– 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。– 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。– 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。– Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。– Date Time API − 加强对日期与时间的处理。– Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。– Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用

11

2018-09-25翻译后的新特性有:1、181:Nest-Based访问控制2、309:动态类文件常量3、315:改善Aarch64 intrinsic4、318:无操作垃圾收集器5、320:消除Java EE和CORBA模块6、321:HTTP客户端(标准)7、323:局部变量的语法λ参数8、324:Curve25519和Curve448关键协议9、327:Unicode 1010、328:飞行记录器11、329:ChaCha20和Poly1305加密算法12、330:发射一列纵队源代码程序13、331:低开销堆分析14、332:传输层安全性(Transport Layer Security,TLS)1.315、333:动作:一个可伸缩的低延迟垃圾收集器 (实验)16、335:反对Nashorn JavaScript引擎17、336:反对Pack200工具和API

第一个编程

HelloWorld

public class HelloWorld{
    public static void main(String[] args){
    System.out.println("HelloWorld!!");
   }
}

 代码解释和注释

Java中的注释

单行注释

//这是一个单行注释

多行注释

/*

这是一个多行注释

*/

文本文档

/**

这是一个文本文档


*/

代码解释

类作为Java的基本执行单位,一份Java代码必须有类存在,而且作为文件的最外层结构,固定单词class
表示。并且以 {} 作为类的范围界定。public修饰的类为公共类,公共类的名称必须和文件名一致

 输出语句

  • 语句即一条条的指令,以分号且必须以分号结束。

System.put.println("输出的内容");

入口

  • public static void main(String[] args){
  •  }

在Java中程序的入口是固定的,必须是以上格式,没有入口的程序时不能执行的

 标识符

就是给类,接口,方法,变量等起名字的字符序列。用来查找、定位、标明、唯一确认内容。

Java 标识符有如下命名规则:
标识符必须以字母、下划线_ 、美元符开头。
标识符其它部分可以是字母、下划线“_”、美元符“ ”和数字的任意组合。
Java 标识符大小写敏感,且长度无限制。
不可以是Java的关键字

 变量(variable)

Java是一种强类型语言,每个变量都必须声明其类型。

Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式
为: type varName [=value] ;
注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量声明举例

double salary ;
boolean done;
long earthPopulation ;
int age ;

 常量(Constant)

常量:初始化(initialize)后不能再改变值!

public class Constants {
   public static void main(String[] args) {
       final double PI = 3.14;
       // PI = 3.15; //error
       double r = 4;
       double area = PI * r * r;
       double circle = 2 * PI * r;
      System.out.println("area = " + area);
      System.out.println("circle = " + circle);
   }
}

数据类型

数据类型

基本数据类型

  • 4类8种

• 基本数据类型

• 整型

•  计算机最基本的单位 : 字节    1byte = 8bit    单位的进制1024为进制
byte    字节型 1个字节    8bit      [-128,127]
short   短整型 2个字节  16bit [-32768,32767]
int     整型 4个字节  32bit +-21亿
long    长整型 8个字节   64bit 灰常大

注意 : java中整数字面常量值默认是int类型
  表示long类型数据,需要在数据的后面 添加L(推荐)|l

• 浮点型

• float   单精度   4个字节   表示小数点后6位左右
double  双精度   8个字节   表示小数点后15左右

小数的字面常量值默认为double类型
表示float类型数据需要在数据的后面添加f|F
java中浮点类型运算有可能不精确

• 字符型

• char    字符型     2个字节  

字符型的表现形式 : 
''包裹一个字符,有且仅有一个字符
'1'      'a'     ' '
0~65535之间的整数表示一个字符
unicode 字符型 --> ASCII字符集
字符型参与运算,会先转为十进制的整数再运算

• 布尔型

• boolean   布尔型  1bit

true
false
在进行逻辑运算的时候会大量的使用到boolean

引用数据类型

  •  类   接口  数组[]  

• Scanner

• 接收用户键盘输入的内容
1.导入
import java.util.Scanner;

2.创建 Scanner类型的引用
Scanner sc = new Scanner(System.in);

3.使用工能
   引用.nextInt()   **** 接收用户键盘输入int类型的内容
   引用.nextByte()
   引用.nextShort()
   引用.nextLong()
   引用.nextDouble() ****
   引用.nextFloat()
从有效字符开始接受,遇到enter建结束功能
引用.next() 接收用户键盘输入String类型的内容
从有效字符开始接收,遇到 空格等不接受,遇到enter建结束功能
引用.nextLine() 接收用户键盘输入一整行的String类型的内容
遇到enter建结束功能

注意: 不要定义与jdk中类型同名,同包的类
 如果在 nextLine上面存在系列的next工能.,需要处理遗留enter问题

• Random

• 产生随机数
1.导包
import java.util.Random
2.创建Random类型的引用
Random  ran = new Random();
3.使用功能
ran.nextInt()  随机产生int范围内的整数
ran.nextInt(整数n)  随机[0,n)整数
ran.nextDouble() [0.0,1.0) 随机产生double范围的小数

公式总结 :
随机整数:
[0,n)      ran.nextInt(整数n)
[0,n]      ran.nextInt(n+1)
[min,max)  ran.nextInt(max-min)+min
  ran.nextInt(max)->[0,max)
  ran.nextInt(max)+min->[min,max+min)
  ran.nextInt(max-min)+min->[0,max-min)+min -->[min,max)
[min,max]      ran.nextInt(max-min+1)+min

注意 : 伪随机数

数值型表现形式

整型

进制 : 满几进一 二进制 : 由0,1组成    由0b|0B开头表示二进制 八进制 : 有0~7组成    由0开头表示八进制 十进制 : 默认 十六进制 : 由0~9,a~f组合而成,不区分大小写     由0x|0X 组成 其他进制转为10进制 : 从最后一位开始,数值*进制数^从0开始,每次+1,最后的和就为十进制的结果 十进制转为其他进制 : 对十进制的数值除以要转为的进制数,得到余数,从下往上

浮点型

1.小数点前面为0,0可以省略
2.科学计数法
e->10
3.14e2  ==> 3.14*10^2
3.14e-2  ==> 3.14/10^2

转义字符

在java中有些字符具有特殊含义(",'),如果不想要表示特殊含义,只想表示字符本身,可以使用转义字符进行转义
转义字符从\开始

\"
\'
\\

\t  制表符 1个制表符位占8个空格
  如果前面的内容是制表符位的整数倍的宽度,当前的\t从新开辟一个完整的制表符位
  如果前面的内容不满制表符位的整数倍的宽度,包含前面的内容凑成一整个制表符位
  一个中文字符占2个空格
  一个英文,数字,符号字符占一个空格
\n  换行
光标从当前位置到下一行的行首
\b  退格,回删一格
光标后退一格

数据类型转换

对应类型的数据赋值给对应类型的变量

自动类型提升

小---->大 ===> 可以正常存放,但是可能会造成内存的浪费

强制类型转换

大---->小 ===> 不能发生,有可能会造成损失精度 小范围类型 变量名 = (小范围类型)大范围类型数据;

运算符

操作数 : 运算符左右两边的数据
表达式 : 运算符连接操作数整体称为表达式
语句 : 语句以;结束

一元运算符|单目运算符 : 操作数只有一个 + -(正负号)  ++ --
二元运算符|双目运算符 : 操作数有两个 +  - * /
三元运算符|三目运算符 : 操作数有三个 条件运算符

算数运算符

+ - * / % ++ --

+:
1)正号 (省略)
2)加法运算
3)字符串的连接符
当+左右两边一旦出现""字符串,+就做为字符串连接符,把左右两边的数据拼接成为一个字符串
- :
1)负号
2)减法运算

% 取余数 | 取余|模以
当第一个操作数<第二个操作数,结果为第一个操作数

赋值运算符

比较运算符|关系

比较运算符|关系运算符
>  <  >=  <=  
byte,short,int,long,float,double,char
== !=
基本,引用

结果都为boolean类型

逻辑运算符

注意: 
操作数必须为boolean,值为boolean的表达式
建议使用短路运算符

& 与

  • 两个都为真true,结果才为true,一个为false就是false

| 或

  • 一个为true就是true,两个都为false才是false

! 非

  • 取反
    !true -> false
    !false -> true

^ 异或

  • 相同为false,不同为true

短路

  • 如果左边的操作数的值能够决定最终表达式的结果 ,第二个操作数不会执行
    &&  : 两个都为真true,结果才为true,一个为false就是false
    | |  : 一个为true就是true,两个都为false才是false

位运算符

条件运算符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值