一、Java程序预览

Java的语法与C非常类似,这里先使用几个非常简单的程序以点带面来区分C语Java的区分再细讲每个知识点。该文仅针对有编程基础的朋友参考。

1.1、Hello World

创建java项目

新建一个类

运行

1.2、Eclipse使用

1.2.1、项目位置

在项目上右键 ->properties ->location

在项目上alt+enter键也可以打开项目属性

1.2.2、重置窗口布局

显示窗口,如控制台

选择show view

1.2.3、设置字体

window->preferences

1.2.4、修改控制台字体

1.2.4、项目的导入与保存

点击选择项目

完成

1.2.5、修改快捷键

默认快捷键为alt+/,可以修改为其它习惯的快捷键,如tab,tab

1.2.6、重命名

有时我们需要将类名或文件名修改,不能随意的原因是因为一个类可能被其它的类所引用

1.2.7、编码

Window -> Preferences -> General -> Workspace -> Text file encoding -> Other

万国码 unicode

utf-8 gb-2312-80 big5

Window -> Preferences -> Web -> JSP Files -> Text file encoding-> Other:

1.2.8、设置JDK本地JavaDOC API路径及源码路径

还都生成的是无意义的变量名,这样可能会对含有相同类型的变量参数的调用顺序造成干扰;

按Ctrl+点击系统对象可以查看源代码,源代码位置:

这种问题,我们把JDK或者相应Jar包的源码导入进去就能避免了:

Window -> Preferences -> Java -> Installed JREs -> Edit:

选中设置好的JRE目录,编辑,然后全选 JRE system libraries 下的所有Jar包,点击右边的 Source Attachment;

External location 下,选中JDK安装目录下的src.zip 文件,一路OK 下来。

1.3、快捷键

1.3.1、Eclipse快捷键大全

Ctrl+1 快速修复(最经典的快捷键)

Ctrl+D: 删除当前行

Ctrl+Alt+↓ 复制当前行到下一行(复制增加)

Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑ 当前行和上面一行交互位置(同上)

Alt+← 前一个编辑的页面

Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Shift+Ctrl+Enter 在当前行插入空行(原理同上条)

Ctrl+Q 定位到最后编辑的地方

Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)

Ctrl+M 最大化当前的Edit或View (再按则反之)

Ctrl+/ 注释当前行,再按则取消注释

Ctrl+O 快速显示 OutLine

Ctrl+T 快速显示当前类的继承结构

Ctrl+W 关闭当前Editer

Ctrl+K 参照选中的Word快速定位到下一个

Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X 把当前选中的文本全部变为小写

Ctrl+Shift+Y 把当前选中的文本全部变为小写

Ctrl+Shift+F 格式化当前代码

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)

Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)

Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)

Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)

Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)

Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)

Alt+Shift+I 合并变量(可能这样说有点不妥Inline)

Alt+Shift+V 移动函数和变量(不怎么常用)

Alt+Shift+Z 重构的后悔药(Undo)

1.3.2、

1.4、调试(debug)

1.4.1、设置断点

当程序运行到该位置时将中断,等待你的下一步指示。

在代码前双击用于设置与取消断点。

1.4.2、启动调试

点击工具栏中的“debug”按钮可以启动调试。

可以选择切换视图,切换后的效果:

1.4.3、执行调试

单步进入:一步一步执行到每一个细节

单步跳过:只计算当前结果不会进行细节

查看运行时的变量

在遇到逻辑错误时请调试。

二、类型

2.1、java中常用的类型

double 是64位
  1. package com.zhangguo.c139.chapter2;
  2.  
  3. public class Demo1 {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. //数字
  8. //整型
  9. int i1=100;
  10. //长整型
  11. long i2=998877665544332211l;
  12. //短整型
  13. short i3=235;
  14. //浮点型
  15. double d1=3.5; //双精度
  16. double d2=3;
  17. float f1=(float)3.5; //单精度
  18. float f2=3.5f; //单精度
  19.  
  20. //布尔类型 boolean true真/false假
  21. boolean isPass=true;
  22. boolean isOk=false;
  23. boolean isBig=5>8;
  24. if(isPass){
  25. System.out.println("通过了");
  26. }else{
  27. System.out.println("未通过");
  28. }
  29.  
  30. //单字符
  31. char f='女';
  32. char m='男';
  33.  
  34. //字符串
  35. String s1="Hello 中文!";
  36. String s2=1+""; //转换成String
  37.  
  38. }
  39.  
  40. }

运行:

小转大,类型匹配

double d=5;

String s="Hello"+9527

2.3、强制转换

大转小,类型适应(数字转数字)

int i=(double)198.5;

2.4、不同类型间的强制转换

  1. String name = "9527";
  2. int brother = Integer.parseInt(name) + 1;
  3. System.out.println(brother);
  4.  
  5. double d = Double.parseDouble(name);
  6. Boolean.parseBoolean(name);
  7. float f = Float.parseFloat(name);

输出:

三、输入与包

  1. package com.zhangguo.chapter1;
  2.  
  3. //导入包,同一个包不用导入直接使用,不同的包需导入
  4. import java.util.Scanner;
  5. import com.zhangguo.chapter1.Math1;
  6.  
  7. /**
  8. * 输入
  9. * @author Administrator
  10. *
  11. */
  12. public class Math2 {
  13.  
  14. public static void main(String[] args) {
  15. //定义扫描器
  16. Scanner input=new Scanner(System.in);
  17.  
  18. //定义变量
  19. int n=input.nextInt(); //等待输入
  20.  
  21. //String name=input.next(); //输入字符
  22. //float mark=input.nextFloat(); //输入单精度数字
  23. //double pi=input.nextDouble(); //输入双精度数字
  24.  
  25. //条件 判断
  26. if(n==0){
  27. System.out.println("零");
  28. }else if(n%2==1){ //如果一个数与2求余为1
  29. System.out.println("奇数");
  30. }else{
  31. System.out.println("偶数");
  32. }
  33. }
  34.  
  35. }

输出3位数到指定数之间的中能同时被3或5整除的数

  1. package com.zhangguo.c139.chapter2; //包
  2.  
  3. //导包
  4. import java.util.Scanner;
  5.  
  6. public class InputDemo {
  7.  
  8. public static void main(String[] args) {
  9.  
  10. //创建扫描器对象
  11. Scanner input=new Scanner(System.in);
  12.  
  13. // 输出3位数到指定数之间的中能同时被3或5整除的数
  14. System.out.print("请输入n:");
  15. //从键盘输入
  16. int n = input.nextInt();
  17.  
  18. for (int i = 100; i <= n; i++) {
  19. if(i%3==0&&i%5==0){
  20. System.out.println(i);
  21. }
  22. }
  23.  
  24. }
  25.  
  26. }

a)、导入包,导入类

同一个包中的类可以直接引用

不同包中的类型需要导入,使用import,import java.util.Scanner;

如需使用某个包下的所有类,则使用*号,如import java.util.*;

b)、输入

定义扫描器

使用扫描器对象的next*()方法

  1. package com.zhangguo.chapter1;
  2.  
  3. //导入包,同一个包不用导入直接使用,不同的包需导入
  4. import java.util.Scanner;/**
  5. * 输入
  6. * @author Administrator
  7. *
  8. */
  9. public class Math2 {
  10.  
  11. public static void main(String[] args) {
  12. //定义扫描器
  13. Scanner input=new Scanner(System.in);
  14.  
  15. System.out.print("请输入一个数:");
  16. //定义变量
  17. int n=input.nextInt(); //等待输入
  18.  
  19. //String name=input.next(); //输入字符
  20. //float mark=input.nextFloat(); //输入单精度数字
  21. //double pi=input.nextDouble(); //输入双精度数字
  22.  
  23. //条件 判断
  24. if(n==0){
  25. System.out.println("零");
  26. }else if(n%2==1){ //如果一个数与2求余为1
  27. System.out.println("奇\t数");
  28. }else{
  29. System.out.println("偶数");
  30. }
  31. }
  32.  
  33. }

四、流程控制

4.0、if条件分支

判断一个数是奇数还是偶数

  1. package com.zhangguo.chapter1;
  2.  
  3. /**
  4. * 判断一个数是奇数还是偶数
  5. * @author Administrator
  6. *
  7. */
  8. public class Math1 {
  9.  
  10. public static void main(String[] args) {
  11. //定义变量
  12. int n=0;
  13.  
  14. //条件 判断
  15. if(n==0){
  16. System.out.println("零");
  17. }else if(n%2==1){ //如果一个数与2求余为1
  18. System.out.println("奇数");
  19. }else{
  20. System.out.println("偶数");
  21. }
  22. }
  23.  
  24. }

4.1、for循环

for循环计算1到该数间能被3和5同时整除的数之和

  1. package com.zhangguo.chapter1;
  2.  
  3. //导入包,同一个包不用导入直接使用,不同的包需导入
  4. import java.util.Scanner;
  5.  
  6. /**
  7. * 计算1到该数间能被3和5同时整除的数之和
  8. *
  9. * @author Administrator
  10. *
  11. */
  12. public class Math3 {
  13.  
  14. public static void main(String[] args) {
  15. // 定义扫描器
  16. Scanner input = new Scanner(System.in); // 默认的提示 alt+/
  17.  
  18. // 提示输入
  19. System.out.print("请输入一个数:");
  20.  
  21. // 执行输入
  22. int n = input.nextInt();
  23. int sum = 0;
  24.  
  25. // 循环
  26. for (int i = 1; i <= n; i++) {
  27.  
  28. // 判断,逻辑运算,与C一样,&&与,||或,!非
  29. if (i % 3 == 0 && i % 5 == 0) {
  30. // 累加
  31. sum = sum + i;
  32. }
  33. }
  34.  
  35. System.out.println("总和是:" + sum);
  36. }
  37.  
  38. }

运行结果:

4.2、while循环

while循环计算1到该数间能被3和5同时整除的数之和

  1. package com.zhangguo.chapter1;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /**
  6. * while循环计算1到该数间能被3和5同时整除的数之和
  7. *
  8. */
  9. public class Math6 {
  10.  
  11. public static void main(String[] args) {
  12. Scanner input=new Scanner(System.in);
  13. System.out.print("请输入一个数:");
  14. int n=input.nextInt();
  15. int i=1,sum=0;
  16.  
  17. while(i<=n){
  18. if(i%3==0&&i%5==0){
  19. sum=sum+i;
  20. }
  21. i++;
  22. }
  23.  
  24. System.out.println("总和是:"+sum);
  25. }
  26.  
  27. }

break:结束当前循环

  1. package com.zhangguo.chapter1;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /**
  6. * while循环计算1到该数间能被3和5同时整除的数之和
  7. *
  8. */
  9. public class Math6 {
  10.  
  11. public static void main(String[] args) {
  12. Scanner input=new Scanner(System.in);
  13. System.out.print("请输入一个数:");
  14. int n=input.nextInt();
  15. int i=1,sum=0;
  16.  
  17. while(i<=n){
  18. if(i%3==0&&i%5==0){
  19. sum=sum+i;
  20. System.out.println(i);
  21. break;
  22. }
  23. i++;
  24. }
  25.  
  26. System.out.println("总和是:"+sum);
  27. System.out.println("i的值:"+i);
  28. }
  29.  
  30. }

continue:结束当次循环,继续下一次循环

  1. package com.zhangguo.chapter1;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /**
  6. * while循环计算1到该数间能被3和5同时整除的数之和
  7. *
  8. */
  9. public class Math7 {
  10.  
  11. public static void main(String[] args) {
  12. Scanner input=new Scanner(System.in);
  13. System.out.print("请输入一个数:");
  14. int n=input.nextInt();
  15. int i=1,sum=0;
  16.  
  17. while(i<=n){
  18. if(i%3==0&&i%5==0){
  19. sum=sum+i;
  20. }
  21. i++;
  22. if(i<=15) {continue;}
  23. System.out.println(i);
  24. }
  25.  
  26. System.out.println("总和是:"+sum);
  27. System.out.println("i的值:"+i);
  28. }
  29.  
  30. }

4.3、do-while循环

do-while 输入年龄,介于1-100之间

  1. package com.zhangguo.chapter1;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /**
  6. * do-while 输入年龄,介于1-100之间
  7. *
  8. */
  9. public class Math8 {
  10.  
  11. public static void main(String[] args) {
  12. Scanner input = new Scanner(System.in);
  13. int age = 0;
  14.  
  15. do {
  16. System.out.print("请输入年龄:");
  17. age = input.nextInt();
  18. } while (age < 1 || age > 100); //条件为真,循环继续
  19.  
  20. System.out.println("年龄是:" + age);
  21. }
  22.  
  23. }

4.4、if-else多条件分支

if-else 输入购物金额,完成商场打折功能

0-99 打9折

100-500 打8折

500以上打7折

  1. package com.zhangguo.chapter1;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /**
  6. * do-while 输入年龄,介于1-100之间
  7. *
  8. */
  9. public class Math8 {
  10.  
  11. public static void main(String[] args) {
  12. Scanner input = new Scanner(System.in);
  13. int age = 0;
  14. String range = "";
  15.  
  16. do {
  17. System.out.print("请输入年龄:");
  18. age = input.nextInt();
  19. } while (age < 1 || age > 100); // 条件为真,循环继续
  20.  
  21. System.out.println("年龄是:" + age);
  22.  
  23. if (age >= 0 && age <= 30) {
  24. range = "青年";
  25. } else if (age >= 31 && age <= 60) {
  26. range = "中年";
  27. } else if (age >= 61 && age <= 90) {
  28. range = "老年";
  29. } else {
  30. range = "晚年";
  31. }
  32.  
  33. System.out.println("年龄段是:" + range);
  34.  
  35. }
  36.  
  37. // 0-30 青年
  38. // 31-60 中年
  39. // 61-90 老年
  40. // 晚年
  41.  
  42. }

4.5、switch开关分支

switch 输入1-7 输出星期一到星期天

等值比较

  1. package com.zhangguo.chapter1;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Math9 {
  6.  
  7. public static void main(String[] args) {
  8.  
  9. Scanner input = new Scanner(System.in);
  10. int week = 0;
  11. System.out.print("请输入周:");
  12. week = input.nextInt();
  13.  
  14. switch (week) { //char int
  15. case 1:
  16. System.out.println("星期一");
  17. break;
  18. case 2:
  19. System.out.println("星期二");
  20. break;
  21. case 3:
  22. System.out.println("星期三");
  23. break;
  24. case 4:
  25. System.out.println("星期四");
  26. break;
  27. case 5:
  28. System.out.println("星期五");
  29. break;
  30. case 6:
  31. System.out.println("星期六");
  32. break;
  33. case 7:
  34. System.out.println("星期天");
  35. break;
  36. default:
  37. System.out.println("输入错误");
  38. break;
  39. }
  40.  
  41. }
  42.  
  43. }

五、包与注释

a)、指定包名,相当于文件夹,一般使用倒置的域名如(com.baidu.项目名)

整理代码

避免冲,如一个项目中有多个同名的类,可以处在不同的包中间

类可以不在任何包中,一个包中也可以有0-N个类

包与文件夹一一对应

包的声明要放在第一行

b)、类型名,首字母大小

c)、代码中自动插入:public static void main(String[] args)

  1. //包名,1单行注释
  2. package com.zhangguo.chapter1;
  3.  
  4. /**
  5. * 判断一个数是奇数还是偶数
  6. * @author 张果
  7. *2文档注释
  8. */
  9. public class Demo1 {
  10.  
  11. /*
  12. * 主方法,程序的入口
  13. * 3多行注释
  14. */
  15. public static void main(String[] args) {
  16. //语句
  17. System.out.println("Hello World!");
  18. }
  19.  
  20. }

e)、注意java中有3种类型的注释

六、数组

Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99

6.1、 一维数组

a)、计算5位同学的平均成绩

  1. package com.zhangguo.chapter1;
  2.  
  3. public class Math91 {
  4.  
  5. public static void main(String[] args) {
  6. int[] a=new int[10];
  7.  
  8. for (int i = 0; i < a.length; i++) {
  9. a[i]=i*i;
  10. }
  11.  
  12. for (int i = 0; i < a.length; i++) {
  13. System.out.println(a[i]);
  14. }
  15.  
  16. }
  17.  
  18. }

输出:

求平均成绩与总分

  1. package com.zhangguo.chapter2;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Array2 {
  6.  
  7. public static void main(String[] args) {
  8. //统计平均成绩
  9. //实例化(创建)长度为5的数组
  10. int[] scores=new int[5];
  11. int sum=0;
  12. //int[] scores2={20,30,50,90,100,99,19,78};
  13. //int[] scores3=new int[]{20,30,50,90,100,99,19,78};
  14. //int[] scores2=new int[8];
  15. //scores2[0]=20;
  16. //scores2[1]=30; //...
  17.  
  18. //输入器
  19. Scanner input=new Scanner(System.in);
  20.  
  21. //scores.length 数组的长度
  22. for (int i = 0; i <scores.length; i++) {
  23. scores[i]=input.nextInt();
  24. }
  25.  
  26. //遍历数组
  27. for (int i = 0; i < scores.length; i++) {
  28. sum=sum+scores[i];
  29. }
  30.  
  31. System.out.println("总分是:"+sum+",平均分:"+(sum/scores.length));
  32. }
  33.  
  34. }

  1. package com.zhangguo.chapter2;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Array2_2 {
  6.  
  7. public static void main(String[] args) {
  8. //统计平均成绩
  9. //实例化(创建)行为3的数组,列为2的数组
  10. double[][] scores=new double[3][2];
  11. double sum=0;
  12. int n=0; //个数,输入
  13.  
  14. //输入器
  15. Scanner input=new Scanner(System.in);
  16.  
  17. //scores.length 数组的长度
  18. for (int i = 0; i <scores.length; i++) {
  19. for (int j = 0; j < scores[i].length; j++) {
  20. scores[i][j]=input.nextDouble();
  21. n++;
  22. }
  23. }
  24.  
  25. //遍历数组
  26. for (int i = 0; i <scores.length; i++) {
  27. for (int j = 0; j < scores[i].length; j++) {
  28. sum+=scores[i][j]; //sum=sum+scores[i][j];
  29. }
  30. }
  31.  
  32. System.out.println("总分是:"+sum+",平均分:"+(sum/n));
  33. }
  34.  
  35. }

6.2、二维数组

6.2.1、二维数组的定义与使用基础

定义数组并赋初值:

  1. package zhangsan;
  2.  
  3. public class C1 {
  4.  
  5. public static void main(String[] args) {
  6. System.out.println("Hello");
  7.  
  8. int[][] a = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
  9.  
  10. System.out.println(a[0][2]);
  11.  
  12. for (int i = 0; i < a.length; i++) { //行
  13.  
  14. for (int j = 0; j < a[i].length; j++) { //列
  15. System.out.print(a[i][j]+" ");
  16. }
  17. System.out.println();
  18. }
  19.  
  20. }
  21.  
  22. }

输出:

6.2.2、二维数组赋值

定义数组并赋值

  1. package zhangsan;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class C2 {
  6.  
  7. public static void main(String[] args) {
  8.  
  9. int sum=0;
  10. Scanner input=new Scanner(System.in);
  11.  
  12. int[][] a = new int[3][2];
  13.  
  14. //a[0][0]=98;
  15. //a[0][1]=89;
  16.  
  17. for (int i = 0; i < a.length; i++) {
  18. for (int j = 0; j < a[i].length; j++) {
  19. System.err.print("请输入a["+i+"]["+j+"]=");
  20. a[i][j]=input.nextInt();
  21. }
  22. }
  23.  
  24. for (int i = 0; i < a.length; i++) { //行
  25. for (int j = 0; j < a[i].length; j++) { //列
  26. sum+=a[i][j];
  27. }
  28. }
  29.  
  30. System.out.println(sum);
  31.  
  32. }
  33.  
  34. }

输出:

6.2.3、二维数组应用

有3名同学,每名同学有语文与数学考试成绩,求平均分与总分?

  1. package com.zhangguo.chapter2;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Array2_2 {
  6.  
  7. public static void main(String[] args) {
  8. //统计平均成绩
  9. //实例化(创建)行为3的数组,列为2的数组
  10. double[][] scores=new double[3][2];
  11. double sum=0;
  12. int n=0; //个数,输入
  13.  
  14. //输入器
  15. Scanner input=new Scanner(System.in);
  16.  
  17. //scores.length 数组的长度
  18. for (int i = 0; i <scores.length; i++) {
  19. for (int j = 0; j < scores[i].length; j++) {
  20. scores[i][j]=input.nextDouble();
  21. n++;
  22. }
  23. }
  24.  
  25. //遍历数组
  26. for (int i = 0; i <scores.length; i++) {
  27. for (int j = 0; j < scores[i].length; j++) {
  28. sum+=scores[i][j]; //sum=sum+scores[i][j];
  29. }
  30. }
  31.  
  32. System.out.println("总分是:"+sum+",平均分:"+(sum/n));
  33. }
  34.  
  35. }

运行结果:

6.2.4、方法与排序

java中内置了非常多的工具方法如Math类、Arrays类等,使用sort可以实现给数组排序:

  1. package com.zhangguo.chapter2;
  2.  
  3. import java.util.Arrays;
  4.  
  5. public class Method {
  6.  
  7. public static void main(String[] args) {
  8. int a=1,b=2;
  9. int max=a>b?a:b; //三目
  10. System.out.println(max);
  11.  
  12. //算术
  13. System.out.println(Math.max(9, 10));
  14.  
  15. int[] a1={8,9,1,3,4,5,0,-1};
  16.  
  17. //排序
  18. Arrays.sort(a1);
  19.  
  20. for (int i = a1.length-1; i>=0; i--) {
  21. System.out.print(a1[i]+" ");
  22. }
  23.  
  24. //字符,字符串比较只能用equals, ==
  25. String x="abc";
  26. System.out.println(x.equals("abc"));
  27. System.out.println("abc"==x);
  28. }
  29.  
  30. }

?:表达式的作用是如果表达式1为真则返回或执行第2个表达式,如果表达式为假则执行或返回第3个表达式

表达式1?表达式2:表达式3

如:int min=a<b?a:b;

6.2.5、递归调用

利用递归方法求5!

利用递归方法求(斐波那契数列(Fibonacci sequence),又称黄金分割数列)

七、练习与笔记

请说出下面程序的运行结果?

  1. package a.b.c.d;
  2.  
  3. public class Test {
  4.  
  5. public static void main(String[] args) {
  6. for (int i = 1; i <=10; i++) {
  7. if(i%2==0){
  8. System.out.print("a");
  9. }else if(i%3==0){
  10. System.out.print("b");
  11. }else {
  12. System.out.print("c");
  13. }
  14. }
  15. }
  16. }

cabacacaba

break在程序中的作用是什么?他能用在那些结构中?

  1. package a.b.c.d;
  2.  
  3. public class Test2 {
  4.  
  5. public static void main(String[] args) {
  6. for (int i = 0; i <10; i++) {
  7. if(i%2==0){
  8. System.out.print("a");
  9. }else if(i%7==0){
  10. System.out.print("b");
  11. break;
  12. }else {
  13. System.out.print("c");
  14. }
  15. }
  16. }
  17. }

acacacab

continue在程序中的作用是什么?他能用在那些结构中?

当输入0、2、7时程序分别输出什么?

  1. package a.b.c.d;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class TestC {
  6.  
  7. public static void main(String[] args) {
  8. Scanner input=new Scanner(System.in);
  9. String[] weeks={"天","一","二","三","四","五","六"};
  10. int index=input.nextInt();
  11. System.out.println("星期"+weeks[index]);
  12. }
  13. }

上机练习,用户注册示例

  1. package com.zhangguo.chapter2;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /**
  6. * 注册
  7. *
  8. */
  9. public class Math9 {
  10.  
  11. public static void main(String[] args) {
  12. Scanner input = new Scanner(System.in);
  13. String uid,pwd;
  14. String flag;
  15.  
  16. do {
  17. System.out.print("请输入帐号:");
  18. uid = input.next();
  19. System.out.print("请输入密码:");
  20. pwd = input.next();
  21. System.out.println("注册成功,您的用户为:"+uid+"\t密码:"+pwd);
  22.  
  23. System.out.print("是否继续(y/n):");
  24. flag=input.next();
  25. } while (flag.equals("y")); //条件为真,循环继续
  26.  
  27. }
  28.  
  29. }

运行结果:

八、推荐学习网站

http://www.maiziedu.com/

http://www.imooc.com/

http://www.jikexueyuan.com/

https://ke.qq.com/

http://www.chuanke.com/

八、示例与视频

第一次视频:http://pan.baidu.com/s/1bp7pTjL

JDK8下载:http://pan.baidu.com/s/1nuSuIKT

Eclipse下载:http://pan.baidu.com/s/1c2koakg

第三次视频:http://pan.baidu.com/s/1mhAfWSg (JavaSE_第2章第3次_数组,方法,复习流控)

上课示例:http://files.cnblogs.com/files/best/JavaSE02.7z

作业:

在这里找 http://www.cnblogs.com/best/p/5991771.html 5个题

在这里找 http://www.cnblogs.com/best/p/5991751.html 5个题

所有课后练习,包含预习,简答,编程 All

JavaSE学习总结(二)——Java语言基础的更多相关文章

  1. JavaSE 学习笔记之Java语法基础(二)

    1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...

  2. Python学习(二)语言基础

    一.变量与类型 在程序设计中,变量是一种存储数据的载体 整型:Python中可以处理任意大小的整数 浮点型:浮点数也就是小数 字符串型:字符串是以单引号或双引号括起来的任意文本 布尔型:布尔值只有Tr ...

  3. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  4. Java语言基础(二) Java关键字

    Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...

  5. Java语言基础(二)

    Java语言基础(二) 一.变量续 (1).变量有明确的类型 (2).变量必须有声明,初始化以后才能使用 (3).变量有作用域,离开作用域后自动回收 变量作用域在块内有效 (4).在同一定义域中变量不 ...

  6. Java入门篇(二)——Java语言基础(下)

    上篇说到Java中的变量与常量,接下来就是简单的计算了,首先需要了解一下Java中的运算符. 六.运算符 1. 赋值运算符 赋值运算符即"=",是一个二元运算符(即对两个操作数进行 ...

  7. 我的学习目标(目前已初步学习完Java语言基础)

    操作系统.尤其是内存/线程/进程方面 计算机网络协议,重点关注 TCP/UDP/HTTP. 数据结构与算法. 数据库 设计模式,熟练掌握常用的几种设计模式. Java语言基础.熟悉java语言基础,了 ...

  8. 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数

    Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...

  9. day01<计算机基础知识&Java语言基础>

    计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...

  10. java语言基础02

    一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...

随机推荐

  1. MySql修改root密码以及允许外网访问

    1.修改root密码 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('n ...

  2. 利用ini_set()函数实现对php配置文件的修改

    PHP的配置文件是php.ini,如果要开启或者关闭扩展,还有设置一些模块的相关配置是,就得对该文件进行修改, 修改的方法也很简单,打开php.ini找到对应项直接修改,修改之后需要重新启动才能生效. ...

  3. HDU 2011 多项式求和

    http://acm.hdu.edu.cn/showproblem.php?pid=2011 Problem Description 多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/ ...

  4. MySQL: Connection Refused,调整 mysql.ini中的 max_connections

    连接相同的结构的MySQL数据库,一套库Tomcat启动正常,另一套库一直报Connection Refused. 可以断定是连接数太小了.查找mysql.ini中的 max_connections, ...

  5. 推荐一个php7+ mongodb三方类

      373 次阅读  ·  读完需要 8 分钟 5 由于项目需要,把项目升级到了php7.但是升级了之后发现mongo扩展不能用了.php7.0以上只支持mongodb扩展了.而mongodb扩展的驱 ...

  6. Java之修改文件内容:字符串逐行替换

    依赖包: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</a ...

  7. 什么是Maven?

    绝大部分Maven用户都会说:Maven是一个“构建工具”——一个用来把源代码构建成可发布的构建的工具. 构建工程师和项目经理会说Maven是一个更复杂的东西:一个项目管理工具. Maven除了提供构 ...

  8. BZOJ4832[Lydsy1704月赛]抵制克苏恩——期望DP

    题目描述 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的 ...

  9. spring cloud 入门系列一:初识spring cloud

    最近看到微服务很火,也是未来的趋势, 所以就去学习下,在dubbo和spring cloud之间我选择了从spring cloud,主要有如下几种原因: dubbo主要专注于微服务中的一个环节--服务 ...

  10. MVC 多语言

    最近项目需要用到多语言. 研究了一下,也参考了很多技术文章. 这里贴一下参考地址:http://www.cnblogs.com/unintersky/p/3969612.html 主要步骤我这里简述一 ...