java nextline_Java编程语言基础的9根支柱
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根支柱相关推荐
- java编程时 尽量少用_Java编程语言基础知识的要点
很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...
- BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...
- java程序设计基础知识点_Java编程语言基础知识的要点
原标题:Java编程语言基础知识的要点 很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能 ...
- Java零基础学习Java编程语言基础知…
很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...
- java编程语言基础外文,Java编程语言基础.ppt
Java编程语言基础.ppt 第2章Java编程语言基础 学习目标 1 熟练掌握Java数据类型 常量及变量 运算符 2 熟练掌握数组 3 熟练掌握Java的面向对象概念及应用 4 能够应用面向对象程 ...
- java编程语言基础外文,Java编程语言基础(外文文献翻译)
Java编程语言基础(外文文献翻译) JavaTM Programming Language Basics Like applications, applets are created from cl ...
- java编程基础_Java编程语言基础知识要点
Java编程语言基础知识要点 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.下面小编整理了Java编程语言基础知识要点,希望对大家有帮 ...
- Java的一些基础知识
-- Java学习杂谈一 1. 关于动态加载机制-- 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分.很多人都能背出来Java语言的特点,所谓的动态加载机 ...
- java开发必备基础
Java总复习 java知识总复习 第一章:java概述: 1:Java的历史: Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文 ...
最新文章
- 利用solr6.5,tomcat9.0和centos7.0的搭建
- HDU 3032 Nim or not Nim?
- Scala教程之:可扩展的scala
- 我的嵌入式开发之路(.Net Micro Framework)
- Java验证(javafx)
- java学习(74):GUL面板
- VB 判断图片文件的类型格式
- Rocky4.2下安装达梦(DM)6数据库
- 25留数及其应用(一)
- MVP项目框架搭建-高级设计
- mysql5.7主从恢复_MySQL 5.7 开启主从同步开启GTID恢复数据
- python判断不等_Python爬取620首虾米歌曲,揭秘五月天为什么狂吸粉?!
- GJB 8114-2013中不恰当的编码规则解析
- 互联网大厂裁掉你的奇葩理由
- JAVA打字游戏的实现
- 微信小程序入门:和风天气小程序
- 项目管理-5大过程组-10大知识领域-47过程
- 6种不同画法画平行线_平行线的画法
- opencv-python学习【4】色彩空间类型转换
- U盘“文件或目录损坏且无法读取”
热门文章
- C++ 中NULL 和 nullptr 的区别
- IndentationError: unexpected indent python
- uboot引导kernel - 2- uboot/kernel需要放在DDR什么位置的问题
- 基于android的天气预报的设计与实现
- BestCoder Round #92 比赛记录
- 【Step By Step】将Dotnet Core部署到Docker下
- Redis3.0 配置文件说明
- 充分理解表达式——《狂人C》习题解答2(第二章习题5)
- 移植 thttpd Web服务器
- 你知道吗?你可以在异常中解退调用栈