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    整型

Java整型
类型 存储需求 取值范围
int 4字节 ...
short 2字节 ...
long 8字节 ...
byte 1字节 ...

整型用于表示没有小数部分的数值,它允许负数,通常情况下,int最为常用,如果数量过于巨大,选用long来操作,short和byte用于特定的场合。

001.3.2  浮点型

Java浮点类型
类型 存储需求 取值范围
float 4字节 ...
double 8字节 ...

大部分时候我们选用的是double这种方法,因为double的精度是float的两倍,很多情况下,float的精度不能满足需求。

有三个特殊的浮点数值:

  1. 正无穷大
  2. 负无穷大
  3. 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】概述的更多相关文章

  1. Java基础学习_01 概述及环境配置

    一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可 ...

  2. Java基础学习-泛型概述和测试

    1.举例 首先先用集合来写个自定义对象存储并且去遍历. package genericity; import java.util.ArrayList; import java.util.Collect ...

  3. Java基础学习-接口-概述以及成员特点

    package interfaceclass; /*接口的概述: * 接口解决的问题: * 因为java中的继承的单一局限性(子类只能继承一个父类),为了打破这个局限,java语言提供了一个机制,接口 ...

  4. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  5. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  6. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  7. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  8. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  9. java基础学习总结——开篇

    java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...

随机推荐

  1. 一种关闭Windows 8.1 Windows Defender的简单办法

    背景 安装好Windows 8.1,像往常一样,打开[服务]准备关闭Windows Defender,发现不能设置启动类型而且其默认为启动状态,如下图所示. 两个有两种方式关闭它.一是安装第三方安全软 ...

  2. Java 面试题 二

    1.线程怎么保持同步 关于线程同步(7种方式) --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3897440.html"谢谢 ...

  3. Django基础之Session版登录验证

    from functools import wraps def check_login(func): @wraps(func) def inner(request, *args, **kwargs): ...

  4. 最新版Google Chrome 自动加载flash插件的方法

    我们在用Selenium做自动化测试时,有时候需要浏览器自动加载flash插件,69以前的谷歌浏览器,可以通过加载属性的方法自动运行flash插件,如下: prefs={ "profile. ...

  5. Maven项目导出jar包,包含依赖

    1. Maven项目导出jar包,包含依赖:mvn dependency:copy-dependencies package 2. 可以在Project创建lib文件夹,输入以下命令:mvn depe ...

  6. 之前有面试到两个日期的大小比较方式,现在整理一下几种方法。   例子:   String beginTime=new String("2017-06-09 10:22:22");     String endTime=new String("2017-05-08 11:22:22");  1  直接用Date自带方法before()和after()比较 SimpleDateFormat d

    各种数据类型(日期/时间.integer.floating point和numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型.下面列出了这些函数,它们都遵循一个公共的调用 ...

  7. hadoop新旧节点

    注意:黑白名单只出现在名称(nn)节点<!-- 白名单 --><property><name>dfs.hosts</name>/Users/yangya ...

  8. Android : 供应商原生开发套件 (VNDK)

    一.VNDK概述 VNDK(Vendor Native Development Kit)是一组专门用于vendor实现其HAL的lib库,因为自Android 8.0以来,Google引入了Trebl ...

  9. 在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型

    1)  在默认情况下,springmvc不能将String类型转成java.util.Date类型,所有我们只能在Action 中自定义类型转换器 <form action="${pa ...

  10. 面向对语法读取mysql数据库数据例:$db->query($sql)、$result->fetch_array()

    前面我们介绍过如何使用面向对象语法连接mysql数据库,今天技术人员继续讲解如何读取数据.虽然与以前面向过程类似,但还是有些不同,需要大家用心了解. echo '面向对象语法连接数据库test db ...