【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的 ...
随机推荐
- 还是畅通工程(HDU 1233)
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...
- deepin grub2017年11月13日折腾记录
http://blog.csdn.net/atbird0321/article/details/78158194 https://bbs.deepin.org/forum.php?mod=viewth ...
- 利用ant 执行jmeter用例生成html格式报告
1.安装ant 2.准备jmeter 及用例文件.jmx 3.编辑ant 执行文件build.xml <?xml version="1.0" encoding="G ...
- 图论——Floyd算法拓展及其动规本质
一.Floyd算法本质 首先,关于Floyd算法: Floyd-Warshall算法是一种在具有正或负边缘权重(但没有负周期)的加权图中找到最短路径的算法.算法的单个执行将找到所有顶点对之间的最短路径 ...
- SpringMVC 理论
应用系统三层架构: C/S:客户端/服务器 B/S:浏览器/服务器 标准分层: 表现层:WEB 层,接受结果,响应结果,分发请求:通常客户端使用 http 协议请求 web 层,web 层需要接受 h ...
- dubbo服务层面上的负载均衡和高可用
dubbo上的服务层可以做集群,来达到负载均衡和高可用,很简单,只需要在不同的服务器节点上向同一个zk(内网环境)注册相同的服务 注意就是,消费者不能在同一个zk做这种集群操作的 转载请注明博客出处: ...
- 4 LinkedList
1 LinkedList public class LinkedList<E> extends AbstractSequentialList<E> implements Lis ...
- python Telnet通讯
摘要: python中telnetlib模块的使用: http://blog.csdn.net/five3/article/details/8099997 python实现telnet: http:/ ...
- PIMPL(private implementantion)模式(转载)
前记:请搜索PIMPL(private implementantion)模式和桥接模式, PIMPL是桥接模式的一种典型实现 以下转自:http://blog.csdn.net/nrc_douning ...
- DNA Sorting
DNA Sorting Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 105159 Accepted: 42124 De ...