陈国君Java程序设计基础笔记和习题

  • 第一章 Java语言基础
    • 笔记
    • 习题
      • 1.1 Java语言有哪些特点?
      • 1.2 什么是Java虚拟机?
      • 1.3 什么是字节码?采用字节码的最大好处是什么?
      • 1.4 什么是平台无关性?Java语言是怎么实现平台无关性的?
      • 1.5 Java语言程序有几种?每种程序包含哪几个方面?
      • 1.6 什么是Java程序的主类?应用程序与小程序的主类有何不同?
  • 第二章 Java语言开发环境
  • 第三章 Java语言基础
    • 笔记
      • 输入数据
      • 运算符
    • 习题
      • Java有哪些基本数据类型?
      • 如何将数值字符串转换为数值型数据?
  • 第四章 流程控制
    • 笔记
      • 例4.5 计算Fibonacci数列的前16项
    • 习题
  • 第五章 数组与字符串
    • 笔记
      • Java把内存分为:栈内存和堆内存
      • 一维数组
      • 数组类Arrays的常用方法
      • 声明一个数组,长度为5,利用循环对其赋值,再通过另一个循环逆输出其元素的内容。
      • 约瑟夫环问题,有N个人围坐一圈并以顺时针从1到N编号,从S个人进行1到M报数,报到M的人出圈,反复循环,给出N个人的出圈顺序
      • foreach语句与数组
      • 计算并输出杨辉三角

第一章 Java语言基础

笔记

习题

1.1 Java语言有哪些特点?

跨平台、适合于分布式计算环境、面向对象、平台无关、对线程、动态性、支持网络编译。
解释型语言(将源代码解释成机器码并执行,然而Java的代码是需要编译的,但是编译后解释运行在JVM上。*.java → *.class → 不同的平台。Java可通过JIT,将代码编译成本机机器代码,从而提高运行速度。 )

1.2 什么是Java虚拟机?

Java虚拟机JVM(Java Virtual Machine)是可以运行Java字节码的软件,JVM可以看做一个字节码的解释器。

1.3 什么是字节码?采用字节码的最大好处是什么?

字节码(Byte-code)是一种包含执行程序,由一序列op 代码/数据对组成的二进制文件(*.class)。其最大的好处是可跨平台执行,write once, run anywhere。

1.4 什么是平台无关性?Java语言是怎么实现平台无关性的?

是指代码无需修改就可以在不同的平台上运行。通过字节码和JVM在目标代码级实现。

1.5 Java语言程序有几种?每种程序包含哪几个方面?

两种,分别是应用程序(Application)和小程序(Applet)。两者开发原理相同但是在运行环境和计算结构上显著不同。Application可以在平台上独立运行,Applet内嵌在HTML文件里,需要在浏览器的支持下运行。
完整的Java程序包含:package语句,import语句,public classDefinition公共定义一部分;(classDefinition部分,interfaceDefinition部分不是必须的,但是通常存在)。

1.6 什么是Java程序的主类?应用程序与小程序的主类有何不同?

主类是程序执行的入口,必须包含main方法。小程序的主类继承自Japplet,该类必须是public类。

第二章 Java语言开发环境

第三章 Java语言基础

笔记

输入数据

使用Java.io 输入数据

imoport java.io.*;
public class class_name{public static void main(String[] args) throws IOException{      //throws关键字声明,表示抛出异常,交给调用者处理...String str;BufferedReader buf;     //声明一个BufferedReader类的变量InputStreamReader inp;inp = new InputStreamReader(System.in);buf = new BufferedReader(inp);str = buf.readLine();       //建议用try(), catch()...}
}

buf = new BufferedReader( new InputStreamReader( System.in ) )


使用java.util.Scanner输入数

import java.util.*;
public class App3_7{public static void main(String[] args){String s1, s2;Scanner scan = new Scanner(System.in);s1 = scan.nextLine();s2 = scan.next();}
}

运算符

instanceof操作符用于测试左侧的对象是否为右侧类的示例,返回boolean数据类型。

习题

Java有哪些基本数据类型?

8个;4个用于整型分别是byte,short,int,long,分别占1,2,3,4个字节。单精度,双精度浮点型float,double分别占4,8个字节(最小值可用Double.MAX_VALUE取得)。char类型用Unicode编码,占用2字节。

如何将数值字符串转换为数值型数据?

使用各个数据类型对应的类提供的parse方法。

第四章 流程控制

笔记

例4.5 计算Fibonacci数列的前16项

public class Test {public static void main(String[] args) {int i = 0;int j = 1;for( int k = 1; k < 17; k = k +2) {System.out.format("第%d项为%d%n第%d项为%d%n", k, i, k + 1, j);i = i + j;j = i + j;}}
}

习题

第五章 数组与字符串

笔记

Java把内存分为:栈内存和堆内存

  • 方法中定义的一些基本类型和对象的引用变量都在方法的栈内存中分配,当在一段代码块中定义一个变量时,Java在栈内存中为这个变量分配内存空间,当超出变量的作用域时,Java会自动释放掉为该变量所分配的内存空间。
  • 堆内存用来存放由new运算符所创建的数组或对象,在堆中分配的内存,由Java虚拟机的垃圾回收器来自动管理。在堆中创建数组或对象时,同时还在栈中定义一个特殊的变量,栈中的这个变量就成了数组或对象的引用变量,其保存了对象在堆内存中的首地址,以便在程序中使用栈的引用变量来访问堆中的数组或对象。引用变量在运行到其作用域外时被释放,而堆内存中数组和对象本身仍然存在,它会在一个不确定的时间被JVM的垃圾回收期收走,这是Java比较占内存的原因之一。
  • Java有一个特殊的引用型变量null,如果一个引用变量赋值为null,其不指向任何对象。

一维数组

数据类型[] 数组名; //声明一维数组
数组名 = new 数据类型[个数]; //分配内存给数组

数组类Arrays的常用方法

binarSearch( XXX[] a, X key )
sort( XXX[] )
sort( XXX[], int fromIndex, int toIndex )
XXX[] copyOf( XXX[] original, int newLength )
equal( XXX[]a, XXX[]b )

声明一个数组,长度为5,利用循环对其赋值,再通过另一个循环逆输出其元素的内容。

final int MAX = 5;
int i;
int[] a = new int[MAX];
Scanner scan = new Scanner( System.in );
for( i = 0, i < MAX, i++ ){a[i] = scan.nextInt;for( i = a.length -1; i >= 0; i --)System.out.printf("%d ");
}

约瑟夫环问题,有N个人围坐一圈并以顺时针从1到N编号,从S个人进行1到M报数,报到M的人出圈,反复循环,给出N个人的出圈顺序

final int N = 13;
final int S = 3;
final int M = 5;
int i = S - 1, j = 0, k = N, g = 1;
int[] a = new int[N];
for( int h = 1, h <= N, h++ ){a[h - 1] = h;
}
do{i = i + (M - 1);while(i >= k)System.out.print("  "+ a[i]);for( j = i; j < k - 1; j++ )a[j] = a[j + 1];k--;g++;
}while(g <= N);

另一种算法

final int N = 13, S = 3, M = 5;
int[] x = new int[N];
int[] y = new int[N];
int i = 0, j = 0, k = S - 2;
for( i= 1; i <= N; i++){for( j = 1; j <= M; j++){if(k == N-1)k = 0;elsek++;if(x[k] == 1)j--;}x[k] = 1;y[n++] = k + 1;for(i = 0; i < N; i++)System.out.print(q[i] + "   ");
}

foreach语句与数组

for( type elment: array ){System.out.println( element );...
}

计算并输出杨辉三角

int i, j;
int level = 7;
int[][] iayong = new int[level][];
for(i = 0, i < iaYong.lenth; i ++){iaYong[i][0] = 1;for(j = 1; j < iaYong[i].length-1; j++)iaYong[i][j] = iaYong[i - 1][j - 1] + iaYong[i - 1][j];iaYong[ i ][ iaYong[ i ].length - 1 ] = 1;
}
for( int[] row : iaYong){for( int col : row )System.out.print( col + "   " );System.out.println();
}

陈国君Java程序设计基础笔记和习题相关推荐

  1. JAVA SE学习笔记(七):终章:Java程序设计基础笔记(全10万字)

    Java程序设计入门 ​                                              copyright © 2020 by 宇智波Akali 目录 文章目录 第1章 J ...

  2. java程序设计基础_陈国君版第五版_第五章习题

    java程序设计基础_陈国君版第五版_第五章习题 import java.util.Scanner; public class Main5_1 {public static void main(Str ...

  3. java程序设计基础_陈国君版第五版_第十一章习题

    java程序设计基础_陈国君版第五版_第十一章习题 /*** 题目:假设某家银行可接受顾客的汇款,每进行一次汇款,便可计算出汇款的总额.现有两名顾客,每人分三次,每次一百元将钱汇入.试编程来模拟顾客的 ...

  4. java程序设计基础_陈国君版第五版_第十一章例题

    java程序设计基础_陈国君版第五版_第十一章习题 class MyThread extends Thread { private String who;public MyThread(String ...

  5. java程序设计陈国君_《JAVA程序设计基础(第6版)/陈国君》【价格 目录 书评 正版】_中国图书网...

    JAVA程序设计基础(第6版)/陈国君 节选 第3章Java语言基础 本章主要内容:  数据类型:  变量:  基本类型变量:  数据类型的转换规则:  从键盘输入数据的语句格式:  运算 ...

  6. java程序设计基础_陈国君版第五版_第七章例题

    java程序设计基础_陈国君版第五版_第七章例题 class Cylinder {private double radius;private int height;private double pi ...

  7. java程序设计基础_陈国君版第五版_第四章例题

    java程序设计基础_陈国君版第五版_第四章例题 <pre name="code" class="java">public class Main4_ ...

  8. java程序设计基础_陈国君版第五版_第八章例题

    java程序设计基础_陈国君版第五版_第八章例题 class Person{private String name;private int age;public Person(){System.out ...

  9. java程序设计基础_陈国君版第五版_第五章例题

    java程序设计基础_陈国君版第五版_第五章例题 public class Main5_1 {public static void main(String[] args){int i;int[] a; ...

  10. java程序设计基础_陈国君版第五版_第十章例题

    java程序设计基础_陈国君版第五版_第十章例题 import java.io.*; public class Main10_1 {public static void main(String [] ...

最新文章

  1. BCH社区公益广告位计划
  2. 视频监控PPP项目投资建设和运营模式分析
  3. python的in,is和id函数
  4. Apache Log4j2 远程代码执行 漏洞
  5. 熵权法中计算的熵值与决策树的熵值完全不一样之谜
  6. TensorFlow, PyTorch, Caffe2的比较
  7. lucene使用3.0.3_Apache Lucene 5.0.0即将发布!
  8. 暑期项目经验(九) -- request session application
  9. 安川e7变频器接线_台达变频器C2000系列在铝箔纸压花机上的应用
  10. 租用境外服务器开设网站,租用境外服务器对网站SEO有影响么?影响在那里?
  11. 如何自学游戏引擎的开发?
  12. 大量的数据做字符串匹配_【重学数据结构与算法(JS)】字符串匹配算法(三)——BM算法...
  13. 清除windows的EFS加密
  14. CAS在Tomcat中实现单点登录
  15. 【VC++类型转换】CString和System::String类型的转换
  16. android pickerview 多行,Android仿ios条件选择器pickerview
  17. python快速实现简单的图像人脸融合
  18. 后端修行 - java中PO、VO、BO、POJO、DAO、DTO、TO、QO的理解
  19. 交大研究生去日本签证攻略
  20. [1108]小米5S TWRP刷面具、EdXposed

热门文章

  1. python开发面试笔试题_Python测试开发面试笔试题
  2. Java监听和发送飞秋群消息
  3. Python开发工具PyCharm中文版安装与配置详细图文教程
  4. 2018年值得推荐的20个Bootstrap网站模板
  5. 24点游戏 C语言代码
  6. CAN接口芯片MCP2515的波特率和滤波器设置问题
  7. sja1000 CAN控制器波特率计算方法详解
  8. Code jock使用笔记
  9. windowns定时关机命令
  10. java安卓版_Java虚拟机安卓版下载