【java基础学习001】概述
001.1 一个简单的Java程序
public class hello {
public static void main(String[] args)
{
System.out.println("Hello");
}
}
Java是大小写敏感的,所以如果出现大小写编写错误,是不可以成功运行的(例如:main写成Main)。
关键字public被称为访问修饰符,这一类的修饰符用于控制程序的其他部分对这段代码的访问级别。关键字class表明了Java程序的全部内容都包含在类里。这里只需要将类作为一个加载程序逻辑的容器就可以程序的逻辑定义了应用程序的行为。
class后面跟着的是类名,类名需要和文件的名字保持一致,以字母开头,后面可以跟着字母和数字的组合,长度没有限制,不可以使用Java的保留字。
主函数里System.out.println();调用的是System.out对象的println方法,在Java中使用的通用语法是
object,method(parameters)
在命令行运行这个程序,首先进入这个文件所在的文件夹,然后首先通过javac把这个文件hello.java编译成hello.class。Java程序启动Java虚拟机,虚拟机执行编译器放在class文件中的字节码。运行这个程序,java虚拟机会从指定的类中的main方法开始执行,因此为了程序能够执行,在类的源文件中必须包含一个main方法,本程序会在终端输出Hello,代表执行完毕。
javac hello.java
java hello
001.2 注释
1.单行注释 // :
从 // 开始注释到本行的结尾 。
2.多行注释 /* */:
对/* */里面的内容进行注释,也可以使用CTRL+/ 进行批量注释,/* */不能进行嵌套,所以我倾向于批量注释的方法。
3.用于生成文档的注释 /** */
001.3 数据类型
Java是一种强类型的语言,所以这意味着它必须为每一个变量声明一种类型。在Java中,有八种基本的数据类型,其中包括了四种整型,两种浮点类型,一种用于表示unicode编码的字符单元的字符类型char和一种用于表示真值的Boolean类型。
001.3.1 整型
| 类型 | 存储需求 | 取值范围 |
| int | 4字节 | ... |
| short | 2字节 | ... |
| long | 8字节 | ... |
| byte | 1字节 | ... |
整型用于表示没有小数部分的数值,它允许负数,通常情况下,int最为常用,如果数量过于巨大,选用long来操作,short和byte用于特定的场合。
001.3.2 浮点型
| 类型 | 存储需求 | 取值范围 |
| float | 4字节 | ... |
| double | 8字节 | ... |
大部分时候我们选用的是double这种方法,因为double的精度是float的两倍,很多情况下,float的精度不能满足需求。
有三个特殊的浮点数值:
- 正无穷大
- 负无穷大
- NaN(这不是一个数字)
例如:一个正整数除以0的结果就是正无穷大。计算0/0或者负数的平方根的结果就是NaN。
ps:常量 Double.POSITIVE_INFINITY、 Double.NEGATIVEJNFINITY 和 Double.NaN ( 以及相应的 Float 类型的常量) 分别表示这三个特殊的值。
如果我们想要检测一个特定值是否等于Double.NaN,不能使用if(x==Double.NaN),因为Java认为所有非数值的值都是不相同的,我们可以使用if(double.isNaN)来判断这是否是一个数字。
001.3.3 char类型
| 转义序列 | 名称 | Unicode值 |
| \b | 退格 | \u0008 |
| \t | 制表 | \u0009 |
| \n | 换行 | \u000a |
| \r | 回车 | \u000d |
| \" | 双引号 | \u0022 |
| \' | 单引号 | \u0027 |
| \\ | 反斜杠 | \u005c |
001.3.4 boolean类型
这个类型有两个值:false和true,用来判定逻辑条件,整型和布尔值之间不能进行相互转换。
001.4 变量
在Java中,每个变量都有一个类型(type),声明变量的时候,
- double salary;
- int vacationDays;
- long earthPopulation;
- boolean done;
声明是一条完整的java语句,所以需要用分号结束。
001.4.1 变量初始化
声明一个变量之后,需要对他进行显式地初始化,在Java中不可以使用未初始化的变量,Java编辑器认为这个是错误的。
变量名放在左侧,相应取值的Java表达式放在等号的右侧:
int a ;
a = 12;
也可以把变量的声明和初始化放在同一行里:
int a = 12;
001.4.2 常量
在Java中,利用关键字final来指示常量,关键字final表示这个变量只能够被赋值一次,一旦被赋值之后,就不能再更改了,习惯上我们把常量名全部大写。
在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这样的常量称为类常量。可以使用static final设置一个类常量,下面是使用类常量的实例:
public class Constants2
{
public static final double CM_PER_INCH = 2.54; public static void main(String[] args)
{
double paperWidth = 8.5;
double paperHeight = 11;
System.out.println("Paper size in centimeters: "
+ paperWidth * CMJERJNCH + by " + paperHeight * CM_PER_INCH) ;
}
}
需要注意的是,类常量的定义微遇main方法的外部,因此在同一个类的其他方法中也可以使用这个常量,而且,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量,在这个示例中,Constants2.CM_PER_INCH就是这样的一个常量。
001.5 运算符
在Java中,使用算数运算符+,-,*,/表示加,减,乘,除运算。当参与/运算的两个操作数都是整数的时候,表示整数除法,否则,表示浮点除法。整数的求余操作用%表示。
15/2 //
15%2 //
15.0/2 //7.5
整数除以0会产生一个异常,而浮点数除以0会得到一个无穷大或者NaN的结果。
001.5.1 数学函数与常量
A、计算一个数值的平方根,可以使用sqrt方法;
double x=4;
double y=Math.sqrt(x);
System.out.println(y); //2.0
println方法处理的是System.out对象,但是Math类的sqrt方法处理的不是对象,这样的方法被称为静态方法。
B、幂运算,借用Math类的pow方法
double y = Math.pow(x,a);
将y设置成x的a次幂,pow方法使用的是两个double类型的参数,其返回结果也是double类型的。
C、另外一些常用的三角函数,指数函数
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
Math.exp
Math.log
Math.log10
Math.PI
Math.E
PS:可以不必在数学方法名和常量名前面添加前缀“Math”,只要在源文件的头部导入:
import static java.1ang.Math.*;
001.5.2 数值类型间的转换
两个数值进行二元操作的时候,有double就变double,没有就看有没有float,再没有就看有没有long,都没有就变成int。
001.5.3 强制类型转换
//这种方式是直接抹去小数部分
double x=9.997;
int nx = (int) x; //
如果想对浮点数进行舍入运算,需要使用Math.round方法
//产生一个最接近的整数
double x z 9.997;
int nx = (int) Math.round(x);
001.5.4 结合赋值和运算符
//两者是等价的
x += 4;
x = x+4;
001.5.5 自增与自减运算符
int a=4;
++a; //a=5
a++; //a=5
--a; //a=3
a--; //a=3
前加加和后加加在效果上是类似的,就是前加加先进行自增再进行运算,后加加运算结束再自增。
package test;
public class Test {
public static void main(String[] args){
int a=1;
int b=1;
System.out.println(2*++a); //
System.out.println(2*b++); //
System.out.println(a); //2
System.out.println(b); //
}
}
这里的前++
2*++a;
//相当于
a=a+1;
2*a;
这里的后++
2*b++;
//相当于
2*b;
b=b+1;
001.5.6 关系和 boolean 运算符
==,!=,<,>,<=,>=,&&(与),||(或)
ps:三元运算符condition ? expressioni1: expression2
例如:x<y?x:y会挑选出x和y中比较小的那一个。
001.5.7 枚举类型
【java基础学习001】概述的更多相关文章
- Java基础学习_01 概述及环境配置
一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可 ...
- Java基础学习-泛型概述和测试
1.举例 首先先用集合来写个自定义对象存储并且去遍历. package genericity; import java.util.ArrayList; import java.util.Collect ...
- Java基础学习-接口-概述以及成员特点
package interfaceclass; /*接口的概述: * 接口解决的问题: * 因为java中的继承的单一局限性(子类只能继承一个父类),为了打破这个局限,java语言提供了一个机制,接口 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
随机推荐
- mac 使用express -e ./
利用express构建一个简单的Node项目 命令: express -e ./ -e表示使用ejs作为模板 ./表示当前目录中 使用上面的命令之前我们应该使用npm安装express框架 sudo ...
- HDU 1512 Monkey King(左偏堆)
爱争吵的猴子 ★★☆ 输入文件:monkeyk.in 输出文件:monkeyk.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 在一个森林里,住着N只好斗的猴子.开始,他们各 ...
- HZWER
我们的征途是星辰大海 2016年3月13日8,8077 尊敬的各位老师.亲爱的同学们: 大家好,我是高三(1)班的黄哲威.今天很荣幸能和大家分享一些有关竞赛的心得体会. 去年7月15日,第32届全国信 ...
- lua.c:82:10: fatal error: readline/readline.h: No such file or directory #include <readline/readline.h>
make linuxcd src && make linuxmake[1]: Entering directory `/root/lua/lua-5.3.2/src'make all ...
- JDK快捷安装,以及详细安装步骤
一,直接快捷安装 安装JDK之前先打开终端输入以下内容检查是否有JDK环境 java javac java -version 输入完弹出一堆东西就是安装完成了 如果安装可以使用 rpm -qa | g ...
- Palindrome Degree(CodeForces 7D)—— hash求回文
学了kmp之后又学了hash来搞字符串.这东西很巧妙,且听娓娓道来. 这题的题意是:一个字符串如果是回文的,那么k值加1,如果前一半的串也是回文,k值再加1,以此类推,算出其k值.打个比方abaaba ...
- CF427D
CF427D SA的奇技淫巧,其实就是板子. 题意: 给定两个字符串,求最短的满足各只出现一次的连续公共字串 解析: 一般情况下,SA都是用来求最长公共前缀的,好像和这道题所求的最短公共子串没有任何关 ...
- AT3576 Popping Balls
AT3576 Popping Balls 好题!一种以前没怎么见过的思路! %%ywy 以什么方式,什么位置统计本质不同的方案,才能不重不漏是处理所有计数问题的主心骨. 本题难以容斥.难以DP. 所以 ...
- RDP连接失败的解决方法
当RDP某一桌面时,远程桌面连接提示:发生身份验证错误,要求的函数不受支持. 解决方法: 打开Run, 输入gpedit.msc,打开组策略编辑器. 如上如所示,修改配置加密Oracle修正策略. E ...
- 微信小程序之状态管理A
其实这个标题 不是很对 主要是最近小程序项目中 有这么一个状态 所有商品都共用一个商品详情页面 大概就是这样子 为了公司 保险起见,一些展示的内容已经处理 但是无伤大雅 就是这么两个按钮 左侧粉色 ...