当前位置: 首页 > 编程日记 > 正文

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。

2d9f5d8b0d96a25d2047adb642541cd2.png

整数的类型

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

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

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

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

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

浮点型

两种浮点型如下:

8f3c7d7b6646190e46b92aa745b4fc02.png

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

字符型char

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

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

主要的escape-sequence如下:

4d30c1b02f424c17f8ce44d4ab3b8e95.png

布尔值

布尔值两种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

数值类型之间的转换

数值之间的转换图如下:

8c245569a734554655a6dccc6f90fa64.png

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

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")

括号的运算顺序

c511fad52c4b9689a4f995ce8fb8de89.png

括号的运算顺序

观察下面的运算层级:

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语言更加符合直觉思维。

相关文章:

js 验证码 倒计时60秒

<input type"button" id"btn" value"免费获取验证码" /> <script type"text/javascript"> var wait60; function time(o) { if (wait 0) { o.removeAttribute("disabled"); …

JAVA安装全过程

安装JDK 设置环境变量 安装eclipse &#xff08;安装前面需要上VPN 后面再退VPN&#xff09; 一般流程&#xff1a;https://blog.csdn.net/weixin_40922936/article/details/80647371

前端(移动端)开发利器Chrome Developer Tools秘籍(下)

之前有分享到我们可以通过 Command Line API 来提高我们的开发效率。除此之外&#xff0c;还有一些比较有趣的快捷键和调试方法&#xff0c;也能帮助提高大家的生产效率。 几个小事项&#xff1a; 1.文中提到的快捷键 command 在WIN下都是对应Ctrl&#xff1b; 2.当焦点在dev t…

李宏毅机器学习笔记六——Gradient Descent

视频来源&#xff1a; 李宏毅机器学习(2017)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili.com/video/av10590361/?p6使用GD的注意事项&#xff1a; &#xff08;1&#xff09;小心的调节Learning rate在因材设计不同的learning rate的时候采用的主要方法&…

UE5废墟破坏游戏场景创建学习教程

为游戏创建毁坏的资产–深入教程课程 了解一个专业的环境艺术家在为游戏创建毁坏的资产时是如何工作的。您将学习正确的资产规划、创建模块化资产、创建损坏的混凝土和柱子、创建损坏的木材/地板、创建碎石堆、模拟碎片等技术&#xff01; 大小解压后&#xff1a;26G 包含项目…

傻瓜式动画制作软件_一个傻瓜版的动画制作软件——万彩动画大师

之前介绍了文字视频的制作软件&#xff0c;但后来发现太单一了&#xff0c;后面又找到了这款动画视频制作软件——万彩动画大师首先来看看软件的首页有很多的模板&#xff0c;还有企业版、教育版、个人版&#xff0c;有很多的选择&#xff0c;有横版的、有竖版的&#xff0c;来…

每个程序员都需要学习 JavaScript 的7个理由

最近在和招聘经理交流现在找一个好的程序员有多难的时候&#xff0c;我渐渐意识到了现在编程语言越来越倾重于JavaScript。Web开发人员尤其如此。所以&#xff0c;如果你是一个程序员&#xff0c;那么你应该去学习JavaScript。 需求 我之所以这样说的主要原因是&#xff0c;随着…

【解决方法】你已从聊天服务器断开,正在尝试重新连接

打开360软件管家搜索断网急救箱修复然后上游戏就好了 360邪恶力量 还真就这么神奇0.0 目测是host文件设置问题

linux 修改home 目录

第一种方法&#xff1a;vi /etc/passwd  找到要修改的用户那几行&#xff0c;修改掉即可。此法很暴力&#xff0c;建议慎用。  /etc/passwd文件格式  登录名&#xff1a;加密口令&#xff1a;数字用户ID:数字组ID:注释字段&#xff1a;起始目录&#xff1a;shell程序  …

2018-3-6论文-网络评论中非结构化信息的应用于研究------(语义矩离)

语义矩离 用来描述特征词之间的语义相似度。 常用的计算方法主要有&#xff1a; 根据同义词词典求2个词语编码的矩离 在文章中使用了哈工大的《同义词词林》扩展版 &#xff08;1&#xff09;每个词有若干个编码&#xff0c;每个编码有5层代码和1位标志位描述…

Blender 3.0基础入门学习教程 Introduction to Blender 3.0

成为Blender通才&#xff0c;通过这个基于项目的循序渐进课程学习所有主题的基础知识。 你会学到什么 教程获取&#xff1a;Blender 3.0基础入门学习教程 Introduction to Blender 3.0-云桥网 模拟一架基本喷气式飞机 雕刻高细节 重组学 展开UV 绘画和阴影 使喷射动画化 制造天…

python开源商城_Leaf - 一个开发友好、功能完备的开源微信商城框架

Leaf - 开源微信商城系统框架Leaf 旨在实现一个对普通用户易用、对开发者友好的 轻型 开源 CMS 框架&#xff1b;Leaf 基于 Python3.5 构建&#xff0c;后端使用 Flask 作为基础框架、mongoengine 进行数据库建模。 我们希望能减少普通用户搭建微信商城的成本&#xff0c;同时为…

Github配置(git+vscode+python+jupyter)

①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name “Your Name” $ git config --global user.email "emailexample.com" $ git config --global credential.helper store 注意&#xff1a;邮箱必须与 GitHub 注册邮箱一致 以后&a…

1.2 - C#语言习惯 - 用运行时常量readonly而不是编译期常量const

C#中有两种类型的常量&#xff1a;编译期常量和运行时常量。二者有着截然不同的行为&#xff0c;使用不当将会带来性能上或正确性上的问题。 这两个问题最好都不要发生&#xff0c;不过若难以同时避免的话&#xff0c;那么一个略微慢一些但能保证正确的程序则要好过一个快速但不…

2018-3-6 (论文—网络评论中非结构信息应用于研究)笔记-----论文中的特征抽取的模型算法

整体的流程 网络评论预处理------------------->>>>>>利用相关性特征得到网络评论特征抽取的模型算法 特征提取算法模型&#xff1a; 论文46 马尔科夫链&#xff08;Markov blanket&#xff09; 具体的意义不懂 特征冗余&#xff…

从头开始学习Adobe Photoshop CC图像编辑

完整课程&#xff0c;涵盖所有关于Adobe Photoshop CC的基本课程 你会学到什么 课程获取&#xff1a;从头开始学习Adobe Photoshop CC图像编辑-云桥网 Photoshop用户界面之旅 转型导论 项目管理 图层面板简介 基本图层属性 混合模式 不可或缺的层效果 投影、内部发光和外部发光…

hbase shell命令_HBASE的shell操作

前言我们知道hbase其实是架构在hdfs上的一个分布式数据库&#xff0c;既然是数据库那么这篇文章就主要围绕着我们最熟悉的增删改查来做。当然了&#xff0c;其实hbase的shell操作在真实的企业中几乎不用&#xff0c;这个很简单&#xff0c;我们的hbase是用来存贮海量数据的&…

BOM、定时器

BOM、 window:frames; history; location; navigator; screen; docunment( anchors; forms; images; links; location; ) 1.定时器 setTimeout 指定函数几秒后运行setInterval 可重复运行指定几秒运行 2.弹对话框 alert 会产生阻塞 confirm 有“确定”或“取消”按钮&#xf…

mysql 树形结构_再读MySQL索引-《高性能MySQL》索引手记

最近工作中经常和MySQL打交道&#xff0c;当数据量小的时候&#xff0c;不同查询方式以及是否使用索引并无大碍&#xff0c;当数据量随着业务的成长急剧加速时&#xff0c;索引的重要性不言而喻。本篇文章以《高性能MySQL》中的索引章节为基础&#xff0c;加之个人对索引的理解…

下午就要考试啦~~附上自己做的考试范围

第一章 测试是否有必要 有。毕竟成本低 什么是软件的质量&#xff1f;&#xff08;测试检测的是软件的质量&#xff0c;那么是什么软件的质量&#xff09; 外部质量&#xff1a;用户可感知的&#xff0c;[功能、可靠、易用、效率] 内部质量&#xff1a;代码风格、内聚性、耦合性…

Unity 创建2D平台游戏开发学习教程

了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建强大且通用的人工智能 创造具有多重能力的角色 创建级别组件 MP4 |视频:h264&…

Solr和lucene

1. Solr 是什么&#xff1f; Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器&#xff0c;易于加入到 Web 应用程序中。Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式&#xff08;包括XML/XSLT和JSON等格式&#xff09;。它易于安装和配置&#xf…

django 链接地址匹配流程

前提&#xff1a; 代码结构 步骤一&#xff1a; 下面为某个网页的链接地址 <body> {% if latest_article_list %}<ul>{% for article in latest_article_list %}<li><a href"/blog/p/{{ article.id }}/">{{ article.title }} </a><…

【Datawhale-Python】Task1

1.环境搭建 略&#xff08;见之前博客&#xff09; 2.python初体验 ①print&#xff08;&#xff09; 略 ②input&#xff08;&#xff09; Python3.x 中 input() 函数接受一个标准输入数据&#xff0c;返回为 string 类型。 >>> ainput() 2 >>> a 23.…

Android高手速成

第一部分 个性化控件(View) http://www.cnblogs.com/huwei0814/p/3796659.html 第二部分 工具库 http://www.cnblogs.com/huwei0814/p/3796670.html 第三部分 优秀项目 http://www.cnblogs.com/huwei0814/p/3796673.html 第四部分 开发工具及测试工具 http:/…

Texlive安装与环境变量配置

下载安装&#xff1a;https://www.jianshu.com/p/25896cc05cb4 去官网下载速度很快 环境变量配置&#xff1a;https://www.jianshu.com/p/f8f6c255098c

2018-3-7论文网络评论中非结构化信息的表示与研究--------实验分析

数据来源&#xff1a; &#xff08;1&#xff09;电子商务网站提供的网路评论 &#xff08;2&#xff09;专门提供网络评论交流平台的网络 &#xff08;3&#xff09;文章中使用的数据为网上某商城关于“某品牌中的一种型号纸尿裤&#xff08;价格75RMB&#xff09;”的2526…

3dmax Vray建筑可视化入门学习教程

面向初学者的3Ds Max Vray最佳Archviz可视化课程 从安装到最终图像的一切都将从头开始教授&#xff0c;不需要任何经验 大小解压后&#xff1a;3.25G 时长4h 6m 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 课程获取&…

javascript与浏览器学习(一)

待学习………… 20160421 标题&#xff1a;JavaScript中浏览器兼容问题 博客地址&#xff1a;http://www.cnblogs.com/DF-fzh/p/5408241.html 简单学习。 转载于:https://www.cnblogs.com/Tpf386/p/5416390.html

idea运行jsp显示源码_基于jsp+mysql+Spring+mybatis的SSM在线个人PC电脑商城平台网站系统...

运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。IDE环境&#xff1a; Eclipse,Myeclipse,IDEA都可以tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可硬件环境&#xff1a; windows 7/8/10 1G内存以上主要功能说明&#xff1a; 管…