Java编程的基础概念包括:数据类型,分支与循环等。

1.HelloWorld

先从最简单的Java程序开始:

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

最显眼的是关键词 "main",由此可知java于C,CPP同宗同源。第一行的public为“access-modifier”控制其他部分对类FirstSample的访问级别。

区别于cpp,此处的main并不会对系统返回“exit-code”,这或许会导致不能写许多有意思的程序结构。

2.注释

单行的注释用"//":

System.out.println("Hello World"); // This is a comment

多行的注释如下:

/* The code below will print the words Hello Worldto the screen, and it is amazing */System.out.println("Hello World");

3.数据类型

Java有8种primitive数据类型,只有8种,这种确定感,可靠感,是学习和应用java的核心原因。

整型4种,浮点型2种, 字符型1种以及布尔值一种。

整数型:

四种整型分别为int,long,short,byte。

整数的类型

由图可知,java相比于C的巨大进步是整型的范围全部是确定的,独立于运行平台。

数据的literals表示方法,颇为不同的是二进制数字。

jshell> 0b1001$1 ==> 9jshell> 0b1111_0100_0010_0100_0000$2 ==> 1000000

long型要后缀"l",八进制与十六进制加前缀分别写为0x和0o。

另外,java中并无内置的unsigned数据。

浮点型

两种浮点型如下:

默认为double,float则需要显式声明为2.17F。

字符型char

char以单引号表示'A',亦可hexadecimal表示‘™’:

jshell> '™'$6 ==> '?'jshell> 'π'$7 ==> 'π'

主要的escape-sequence如下:

布尔值

布尔值两种false和true,并且就是如此表示。

4.变量与常数

变量的应用是抽象过程的重要一步,由此编程语言的表达力开始锋芒小露。基本语法为:

type variable = value;

1) 声明与初始化变量

int myNum = 5;float myFloatNum = 5.99f;char myLetter = 'D';boolean myBool = true;

2) 常量

常量用final关键词:

public class Constants{   public static void main(String[] args)   {      final double CM_PER_INCH = 2.54;      double paperWidth = 8.5;      double paperHeight = 11;      System.out.println("Paper size in centimeters: "         + paperWidth * CM_PER_INCH + " by " + paperHeight * CM_PER_INCH);   }}

3) Enumerated Types

与C语言是完全一致的。

enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE };Size s = Size.MEDIUM;

5.运算符

编程最直觉的部分就是从数学运算开始。

算数运算符

加减乘除以及模除五种类型,没有幂运算:

jshell> 2 ** 3|  Error:|  illegal start of expression|  2 ** 3|     ^

数学函数与常数

Math库的所有函数如下:

jshell> Math.E                 IEEEremainder(    PI                abs(acos(             addExact(         asin(             atan(atan2(            cbrt(             ceil(             classcopySign(         cos(              cosh(             decrementExact(exp(              expm1(            floor(            floorDiv(floorMod(          fma(              getExponent(      hypot(incrementExact(   log(              log10(            log1p(max(              min(              multiplyExact(    multiplyFull(multiplyHigh(     negateExact(      nextAfter(        nextDown(nextUp(           pow(              random()          rint(round(            scalb(            signum(           sin(sinh(             sqrt(             subtractExact(    tan(tanh(             toDegrees(        toIntExact(       toRadians(ulp(

两个常数分别为E和PI

jshell> Math.PI$8 ==> 3.141592653589793jshell> Math.E$9 ==> 2.718281828459045

数值类型之间的转换

数值之间的转换图如下:

实线表示无损,虚线表示有损。

Cast强制转换

示例如下:

double x = 9.997;int nx = (int) Math.round(x);

组合赋值与运算符

x = x + 1;x += 1;

自增与自减

此处与C语言完全一致:

int m = 7;int n = 7;int a = 2 * ++m; // now a is 16, m is 8int b = 2 * n++; // now b is 14, n is 8

关系运算与布尔运算:

基本语法为:

expression && expression2x != 0 && 1 / x > x + y // no division by 0condition ? expression1 : expression2

位运算

 & ("and") | ("or") ^ ("xor") ~ ("not")

括号的运算顺序

括号的运算顺序

观察下面的运算层级:

a && b || c 即 (a && b) || ca += b += c 即 a += (b += c)

6.字符串

字符串的基本操作,子串,合并,空字符串,测试相等,排序等等

String greeting = "Hello";String s = greeting.substring(0, 3);int age = 13;String rating = "PG" + age;String greeting = "Hello"; // initialize greeting to a stringif (greeting == "Hello") . . .   // probably trueif (greeting.substring(0, 3) == "Hel") . . .   // probably falseif (str != null && str.length() != 0)

7.输入与输出

读取输入弄得很复杂:

Scanner in = new Scanner(System.in);

竟然还引入了next等:

: System.out.print("What is your name? ");: String name = in.nextLine();

格式化输出等,此处略去不提。

8.控制流

控制流condition,iteration等,此处的关键点是点出for为determined-loop。

public class Message{   public static void main(String[] args)   {      if (args.length == 0 || args[0].equals("-h"))         System.out.print("Hello,");      else if (args[0].equals("-g"))         System.out.print("Goodbye,");      // print the other command-line arguments      for (int i = 1; i < args.length; i++)         System.out.print(" " + args[i]);      System.out.println("!");   }}

9数组

查看几个数组的案例:

public class Message{   public static void main(String[] args)   {      if (args.length == 0 || args[0].equals("-h"))         System.out.print("Hello,");      else if (args[0].equals("-g"))         System.out.print("Goodbye,");      // print the other command-line arguments      for (int i = 1; i < args.length; i++)         System.out.print(" " + args[i]);      System.out.println("!");   }}

跟C差不多。

多种declare的形式:

public class Message{   public static void main(String[] args)   {      if (args.length == 0 || args[0].equals("-h"))         System.out.print("Hello,");      else if (args[0].equals("-g"))         System.out.print("Goodbye,");      // print the other command-line arguments      for (int i = 1; i < args.length; i++)         System.out.print(" " + args[i]);      System.out.println("!");   }}

创建string的数组:

public class Message{   public static void main(String[] args)   {      if (args.length == 0 || args[0].equals("-h"))         System.out.print("Hello,");      else if (args[0].equals("-g"))         System.out.print("Goodbye,");      // print the other command-line arguments      for (int i = 1; i < args.length; i++)         System.out.print(" " + args[i]);      System.out.println("!");   }}

for-each的结构:

public class Message{   public static void main(String[] args)   {      if (args.length == 0 || args[0].equals("-h"))         System.out.print("Hello,");      else if (args[0].equals("-g"))         System.out.print("Goodbye,");      // print the other command-line arguments      for (int i = 1; i < args.length; i++)         System.out.print(" " + args[i]);      System.out.println("!");   }}

数组的复制:

public class Message{   public static void main(String[] args)   {      if (args.length == 0 || args[0].equals("-h"))         System.out.print("Hello,");      else if (args[0].equals("-g"))         System.out.print("Goodbye,");      // print the other command-line arguments      for (int i = 1; i < args.length; i++)         System.out.print(" " + args[i]);      System.out.println("!");   }}

命令行参数:

public class Message{   public static void main(String[] args)   {      if (args.length == 0 || args[0].equals("-h"))         System.out.print("Hello,");      else if (args[0].equals("-g"))         System.out.print("Goodbye,");      // print the other command-line arguments      for (int i = 1; i < args.length; i++)         System.out.print(" " + args[i]);      System.out.println("!");   }}

注意首项即为参数,没有函数名本身。

排序方法与python完全一致:

int r = (int) (Math.random() * n);Arrays.sort(result);for (int r : result)   System.out.println(r);

多维数组:

int[][] magicSquare =   {      {16, 3, 2, 13},      {5, 10, 11, 8},      {9, 6, 7, 12},      {4, 15, 14, 1}   };

数组的表示方法比C语言更加符合直觉思维。

java nextline_Java编程语言基础的9根支柱相关推荐

  1. java编程时 尽量少用_Java编程语言基础知识的要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...

  2. BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略

    BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...

  3. java程序设计基础知识点_Java编程语言基础知识的要点

    原标题:Java编程语言基础知识的要点 很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能 ...

  4. Java零基础学习Java编程语言基础知…

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...

  5. java编程语言基础外文,Java编程语言基础.ppt

    Java编程语言基础.ppt 第2章Java编程语言基础 学习目标 1 熟练掌握Java数据类型 常量及变量 运算符 2 熟练掌握数组 3 熟练掌握Java的面向对象概念及应用 4 能够应用面向对象程 ...

  6. java编程语言基础外文,Java编程语言基础(外文文献翻译)

    Java编程语言基础(外文文献翻译) JavaTM Programming Language Basics Like applications, applets are created from cl ...

  7. java编程基础_Java编程语言基础知识要点

    Java编程语言基础知识要点 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.下面小编整理了Java编程语言基础知识要点,希望对大家有帮 ...

  8. Java的一些基础知识

    --   Java学习杂谈一   1. 关于动态加载机制--   学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分.很多人都能背出来Java语言的特点,所谓的动态加载机 ...

  9. java开发必备基础

    Java总复习 java知识总复习 第一章:java概述: 1:Java的历史: ​ Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文 ...

最新文章

  1. 利用solr6.5,tomcat9.0和centos7.0的搭建
  2. HDU 3032 Nim or not Nim?
  3. Scala教程之:可扩展的scala
  4. 我的嵌入式开发之路(.Net Micro Framework)
  5. Java验证(javafx)
  6. java学习(74):GUL面板
  7. VB 判断图片文件的类型格式
  8. Rocky4.2下安装达梦(DM)6数据库
  9. 25留数及其应用(一)
  10. MVP项目框架搭建-高级设计
  11. mysql5.7主从恢复_MySQL 5.7 开启主从同步开启GTID恢复数据
  12. python判断不等_Python爬取620首虾米歌曲,揭秘五月天为什么狂吸粉?!
  13. GJB 8114-2013中不恰当的编码规则解析
  14. 互联网大厂裁掉你的奇葩理由
  15. JAVA打字游戏的实现
  16. 微信小程序入门:和风天气小程序
  17. 项目管理-5大过程组-10大知识领域-47过程
  18. 6种不同画法画平行线_平行线的画法
  19. opencv-python学习【4】色彩空间类型转换
  20. U盘“文件或目录损坏且无法读取”

热门文章

  1. C++ 中NULL 和 nullptr 的区别
  2. IndentationError: unexpected indent python
  3. uboot引导kernel - 2- uboot/kernel需要放在DDR什么位置的问题
  4. 基于android的天气预报的设计与实现
  5. BestCoder Round #92 比赛记录
  6. 【Step By Step】将Dotnet Core部署到Docker下
  7. Redis3.0 配置文件说明
  8. 充分理解表达式——《狂人C》习题解答2(第二章习题5)
  9. 移植 thttpd Web服务器
  10. 你知道吗?你可以在异常中解退调用栈