3.1 一个简单的Java应用程序

public classFirstSample {public static voidmain(String[] args) {

System.out.println("We will not use 'Hello World'");

}

}

Java对大小写敏感。

关键词public,访问修饰符。

关键词class,类。

类名FirstSample,必须以字母开头,骆驼命名法。

源文件以.java作为扩展名。

每个Java程序都必须有一个main方法。

{ }一对花括号表示方法体的开始与结束。

.号用于点用方法。

3.2 注释

Java中,有三种书写注释的方式。

最常见的是使用//,其注释内容为从//开始到本行结尾。

System.out.println("We will not use 'Hello World'"); //is this too cure?

当需要长篇注释时,既可以在每行的注释前面标记//,也可以用/* 和 */将一段比较长的注释括起来。

第三种注释可以用来自动地生成文档。这种注释以/**开头,以*/结束:

/*** this is first program in this chapter

*@version1.1 2020-04-20

*@authorayor*/

3.3 数据类型

Java是一种强类型语言,必须为每一个变量声明一种类型。在Java中,一共有8种基本类型,其中有4种整型,2种浮点,1种用于表示unicode编码的字符单元的字符类型char和一种表示真值的boolean类型。

3.3.1 整型

int 4字节,short 2字节,long 8字节,byte 1字节。

长整型后缀L, 十六进制数值前缀0x,八进制前缀0,二进制前缀0b。

3.3.2 浮点类型

float 4字节 有效数值精度6~7位,double 8字节,有效数值精度15位。

double 表示的数值精度是float的两倍,绝大多数应用程序采用double类型。

float类型后面有一个后缀F,double类型也可以后缀D,没有F后缀默认为double类型。

3.3.3 char类型

char类型用于表示单个字符。通常用于表示字符常量。

转义序列符号 \u, 可以出现在字符常量或字符串的引号之外,其他转义序列不可以。

\b 退格;\t 制表;\n 换行;\r 回车;

Java中,char类型用utf-16编码描述一个代码单元。

3.3.4 boolean类型。

布尔类型有两个值,true 和 false。

3.4 变量

Java 中,每一个变量属于一种类型type。

doublesalary;intvacationDays;longearthPopulation;boolean done;

3.4.1 变量初始化

未被初始化的变量不能使用。

intvacationDays;

vacationDays= 12;int vacationDays = 12;

3.4.2 常量

在Java中,利用关键字final指示常量。

final double CM_PER_INCH = 2.53;

final表示这个变量只能被赋值一次,一旦被赋值之后,就不能够再改变了。习惯上,常量名使用全大写。

在Java中,希望某个常量在一个类的多个方法中使用,称之为类常量。

public static final double CM_PER_INCH = 2.54;

类常量的定义位于main方法的外部,而且一个常量被声明为public,其他类的方法也可以使用这个常量。

3.5 运算符

算数运算符 +、-、x、/,整数求余操作%。

x += 4, 等价于 x = x + 4。

3.5.1 自增运算符与自减运算符

n++, n--,++n,--n。

3.5.2 关系运算符与boolean运算符。

==;!=;< ; >; >=; <=;

&& 与;|| 或;!非。

三元运算符,x < y ? x : y。

3.5.3 位运算符

3.5.4 数学函数与常量

Math类三角函数,反函数,平方根函数sqrt方法。

3.5.5 数值类型之间的转换

无信息损失的转换——byte-short-int-long(double)

3.5.6 强制类型转换

强制类型转换 cast

double x = 9.99;int nx = int(x);

得到的变量值为9。

为得到最接近的整数,需要使用Math.round方法:

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

nx的值为10。

3.5.7 括号与运算符级别

如果不使用圆括号,就按照给出的符号运算符优先级次序进行运算,同一级别的运算符按照从左到右的次序进行计算。除了右结合运算符之外。

3.5.8 枚举类型

变量的取值只在有限的集合内。

enumSize {SMALL, MEDIUM, LARGE, EXTRA_LARGE};

Size a= Size.MEDIUM;

3.6 字符串

从概念上讲,字符串就是Unicode字符序列。

Java并没有内置字符串类型,而是在标准类库提供了一个预定义类,很自然叫做String。每个用双引号括起来的字符串都是String类的一个实例。

3.6.1 子串

String greeting = "Hello";

String s= greeting.substring(0,3);

3.6.2 拼接

String expletive = "Expletive";

String PG13= "deleted";

String message= expletive + PG13;

将一个字符串与一个非字符串的值进行拼接时,后者被转化为字符串。

3.6.3 不可变字符串

编译器可以将字符串共享。共享优先于提取,拼接。

3.6.4 检测字符串是否相等

s.equals(t);

"hello".equals(greeting);

3.6.5 空串与null串

空串是一个Java字符串对象,长度为0,内容为空。

null串表示,没有对象与该变量关联。

if (str.length() == 0);if (str.equals("");if(str == null));if (str != null && str.leng() != 0);

3.6.6 代码点与代码单元

length方法返回采用utf-16编码表示的给定字符串的代码单元数量。

3.6.7 字符串api

Java的String类包含了50多种方法。

3.6.8 阅读联机api 文档

3.6.9 构建字符串

StringBuilder builder = newStringBuilder();

builder.append(ch);

builder.append(str);

String completeString= builder.toString();

3.7 输入与输出

3.7.1 读取输入

importjava.util.Scanner;public classInputTest {public static voidmain(String[] args) {

Scanner in= newScanner(System.in);

System.out.println("what is your name?");

String name=in.nextLine();

System.out.println("How old are you?");int age =in.nextInt();

System.out.println("My name is " + name + " and my age is " + age +"。");

}

}

3.7.2 格式化输出

3.7.3 文件的输入与输出

Scanner = new Scanner(Paths.get("myfile.txt));

PrintWriter out= new PrintWriter("myfile.txt);

读入文件可能导致异常,需要抛出FileNotFoundException。

3.8 控制流程

3.8.1 块作用域

块,指由一对花括号括起来的若干条简单的Java语句。一个块可以嵌套到另外一个块当中去。但是,不能在嵌套到两个块当中声明同名的变量。

3.8.2 条件语句

if(condition)statement;

if(condition)statement1 else statement2;

3.8.3 循环

while(condition)statement;

do statement while(condition);

importjava.util.Scanner;public classRetirement {public static voidmain(String[] args) {

Scanner in= newScanner(System.in);

System.out.print("How much money do u need to retirement?");double goal =in.nextDouble();

System.out.print("How much money do u contribute every year?");double payment =in.nextDouble();

System.out.print("Interest rate in %: ");double interestRate =in.nextDouble();double balance = 0;int years = 0;while (balance

balance+=payment;double interest = balance * interestRate / 100;

balance+=interest;

years++;

}

System.out.println("You can retire in " + years + "years.");

}

}

importjava.util.Scanner;public classRetirement2 {public static voidmain(String[] args) {

Scanner in= newScanner(System.in);

System.out.print("How much money will you contribute every year?");double payment =in.nextDouble();

System.out.print("Interest rate in %: ");double interestRate =in.nextDouble();double balance = 0;int year = 0;

String input;do{

balance+=payment;double interest = balance * interestRate / 100;

balance+=interest;

year++;

System.out.printf("After year %d, your balance is %,2f%n", year, balance);

System.out.print("Ready to retire?(Y/N)");

input=in.next();

}while (input.equals("N"));

}

}

3.8.4 确定循环

importjava.util.Scanner;public classLotteryOdds {public static voidmain(String[] args) {

Scanner in= newScanner(System.in);

System.out.print("How many number do you want to draw?");int k =in.nextInt();

System.out.print("what is the highest number can you draw");int n =in.nextInt();int lotteryOdds = 1;for (int i = 1; i <= k; i++) {

lotteryOdds= lotteryOdds * (n - i + 1) /i;

}

System.out.println("Your odds are 1 in " + lotteryOdds + ". Good Luck!");

}

}

3.8.5 多重选择switch语句

switch case break default;

3.8.6 中断控制流语句

break 退出循环语句;

带标签的break 语句,跳出多层嵌套; break read_data;

contine 返回到最内层循环到顶层。

3.9 大数值

如果基本的整型和浮点类型都不能够满足需求,可以用Java.math包里面的两个很有用的类:BigInteger和BigDecimal。可以实现任意精度的整型和浮点的运算。

BigInteger a = BigInteger.valueof(100);

BigInteger c=a.add(b);

BigInteger d= c.multiply(b.add(Biginteger.valueof(2)));

3.10 数组

int[] a;int[] a = new int[100];for(int i = 0, i < 100 , i++)

a[i]= i;

3.10.1 foreach循环

for(intelement : a)

System.out.println(element);

3.10.2 数组初始化以及匿名数组

int[] smallPrimes = {2, 3, 5, 7, 11, 13};new int[] {1, 3, 5, 7, 9};

samllPrimes= new int[] {1 ,2 ,3 ,4 ,5};int[] anonymous = {2, 4, 6, 9, 12};

smallPrimes= anonymous;

3.10.3 数组拷贝

int[] copied = Arrays.copyof(luckyNumbers, luckyNumer.length);

这个方法通常用来增加数组的长度

int[] copied = Arrays.copyof(luckyNumbers, 2 * luckyNumer.length);

3.10.4 命令行参数

public classMessage {public static voidmain(String[] args) {if (args[0].equals("-h"))

System.out.print("Hello, ");else if (args[0].equals("-g"))

System.out.print("Goodbye, ");for (int i = 1; i < args.length; i++)

System.out.print(" " +args[i]);

System.out.println("!");

}

}

3.10.5 数组排序

int[] a = new int[10000];

Arrays.sort(a);

3.10.6 多维数组

多维数组将采用多个下标访问数组元素,它适用于表示表格或者更加复杂的排列形式。

3.10.7 不规则数组

Java其实没有多维数组,只有一维数组,多维数组是“数组的数组”。

java程序设计简单程序分类_3 Java的基本程序设计结构相关推荐

  1. Java聊天室程序源码 Java即时通讯代码 Java局域网聊天系统 Java即时通讯 Java聊天系统

    Java聊天室程序源码 Java即时通讯代码 Java局域网聊天系统  Java即时通讯 Java聊天系统 public Swingtest002() {// 设置标题setTitle("请 ...

  2. 用JAVA编写简单呼叫器餐厅,使用Java编写Palm OS程序的解决方案之一

    现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用的应用程序接口,每种应用程序接口都给出了一个到当前的Palm OS应用程序 ...

  3. 【JAVA】简单程序实现人机对抗:剪刀石头布

    目录 1.程序要求 2.代码思路 3.代码及运行结果 1.程序要求 写一个简单程序来实现用户与电脑玩剪刀石头布游戏,该程序先随机生成一个数字0.1或2,分别代表剪刀,石头,布.该程序提示用户输入0,1 ...

  4. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  5. 在JAVA中 以下程序_在Java中,以下程序的输出结果是()_学小易找答案

    [单选题]运行以下Java代码,说法正确的是( ). [单选题]在Java中,以下程序的输出结果是() [单选题]利用"出声"的方式向学生展示教师分析问题的过程与方法的教学方法是_ ...

  6. java数据类型入门程序_「JAVA零基础入门系列」Day3 Java基本数据类型

    前两篇已经将开发环境搭建完成,如果你已经按之前的教程按部就班的完成了部署,那么世界上最优秀的编程语言之一和世界上最优秀的IDE之一已经出现在你的电脑上(此处应有掌声),如果你还没入门,或者正在台阶上踱 ...

  7. java编写应用程序_使用Java API编写应用程序

    java编写应用程序 总览 介绍 DB2JSON可用于DB2 Linux,Unix和Windows 10.5以及用于z / OS V3.1的IBM DB2 Accessories Suite与DB2 ...

  8. python调用java文件_Python程序中调用Java代码的实践

    1.环境准备 windows 7(64位)+JDK(64位)+Python(64位)+eclipse+pycharm 还需要一个作为桥梁的工具包,jpype1,这个工具包可以启动jvm,使java代码 ...

  9. 用JAVA编写简单呼叫器餐厅,使用Java编写Palm OS程序的解决方案1

    使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用的应用程序接口,每种应用程序接口都给出了一个到当前的Palm OS应用程序不同程 ...

最新文章

  1. matlab 判断文件有多少行,在Matlab中有没有办法确定文件中的行数,而不是循环遍历每一行?...
  2. 图片竖轮播html,JS实现纵向轮播图(初级版)
  3. js倒计时代码最简单的_代码设计开发-6大基本原则解读(最简单扼要的理解)
  4. sqlalchemy mysql_使用SQLAlchemy操作MySQL
  5. 对lIKE语句的优化
  6. 同步工具之CyclicBarrier循环栅栏
  7. 使用vscode连接阿里云服务器报错: ssh: Could not resolve hostname Name or service not known
  8. PL/0语言编译器扩展 编译原理课程实践(1)
  9. 【VMware混合云】掀起你的盖头来
  10. 【SPSS】软件介绍
  11. Seay源代码审计系统
  12. java基于ssm数据库原理及应用题库管理系统
  13. spss可以关键词词频分析吗_词频分析研究的现状、方法及工具,你值得拥有
  14. 高斯消元法——Matlab解线性方程组(1)
  15. matlab绘制椭球 参数方程,OpenGL进阶(四)-用参数方程绘制椭球体
  16. 求助!微信公众号页面部分手机加载后空白!
  17. RHCSA 认证考试容器解析版 (2022最新版)
  18. 设计测试用例(蘑菇街web的登录页面)
  19. 苹果手机被偷,从北京到三亚,我用79天找回了它
  20. spdlog linux编译出错,spdlog在工厂方法上崩溃

热门文章

  1. 今天的就每天练习这招的企业即时通讯
  2. 影响信息业发展的飞鸽传书2007关键
  3. 扎金花 游戏开发细节与部分代码
  4. 程序简单教程:飞秋官方下载
  5. 作为一个女程序员,无奈!
  6. 经典面试题(36):以下代码将输出的结果是什么?
  7. 经典面试题:用typeof来判断对象的潜在陷阱
  8. php xmldom扩展,如何使用比根更深入的PHP DOM向XML添加新元素?
  9. NAR再版 | 人类长非编码RNA知识库LncRNAWiki 2.0
  10. java实现相同分数排名_java做成绩排名表,如何实现同分同名次