第一章:Java入门
第二章:基础语法、变量
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
- 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对象的行为和状态。
- 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
//实例
public class HelloWorld {
/* 第一个Java程序
* 它将输出字符串 Hello World
*/
public static void main(String[] args) {
// 输出 Hello World
System.out.println("Hello World");
}
}
2.1、基本语法
编写 Java 程序时,应注意以下几点:
- 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
- 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass。
- 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
- 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
2.2、Java 标识符
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于 Java 标识符,有以下几点需要注意:
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合。
- 关键字不能用作标识符。
- 标识符是大小写敏感的。
- 合法标识符举例:age、$salary、_value、__1_value。
- 非法标识符举例:123abc、-salary。
2.3、Java 修饰符
像其他语言一样,Java 可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:
- 访问控制修饰符 : default, public , protected, private。
- 非访问控制修饰符 : final, abstract, static, synchronized。
在后面的章节中我们会深入讨论 Java 修饰符。
2.4、Java 数组
数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。
2.5、打印Hello Java
这是 Java 入门练习的第一个程序,我们要做的就是把 “Hello Java” 打印到控制台。
public class Solution {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
打印不带换行的 Welcome to LintCode
请编写代码,打印出不带换行的 Welcome to LintCode!
public class Solution {
public static void main(String[] args) {
System.out.print("Welcome to LintCode!");
}
}
2.6、Java 关键字
关键字 | 说明 |
---|---|
private | 私有的 |
protected | 受保护的 |
public | 公共的 |
default | 默认 |
abstract | 声明抽象 |
class | 类 |
extends | 扩充,继承 |
final | 最终值,不可改变的 |
implements | 实现(接口) |
interface | 接口 |
native | 本地,原生方法(非 Java 实现) |
new | 新,创建 |
static | 静态 |
strictfp | 严格,精准 |
synchronized | 线程,同步 |
transient | 短暂 |
volatile | 易失 |
break | 跳出循环 |
case | 定义一个值以供 switch 选择 |
continue | 继续 |
do | 运行 |
else | 否则 |
for | 循环 |
if | 如果 |
instanceof | 实例 |
return | 返回 |
switch | 根据值选择执行 |
while | 循环 |
assert | 断言表达式是否为真 |
catch | 捕捉异常 |
finally | 有没有异常都执行 |
throw | 抛出一个异常对象 |
throws | 声明一个异常可能被抛出 |
try | 捕获异常 |
import | 引入 |
package | 包 |
boolean | 布尔型 |
byte | 字节型 |
char | 字符型 |
double | 双精度浮点 |
float | 单精度浮点 |
int | 整型 |
long | 长整型 |
short | 短整型 |
super | 父类,超类 |
this | 本类 |
void | 无返回值 |
以上共 48 个关键字,还有两个 保留字,但是他们不能使用,goto 和 const。 |
第三章:数据类型
3.1、数据转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
// 转换从低级到高级。
// 低 ------------------------------------> 高
byte/short/char —> int —> long —> float —> double
强制类型转换
public class Main{
public static void main(String[] args){
int i1 = 123;
// 强制类型转换为 byte
byte b = (byte) i1;
// int 强制类型转换为 byte 后的值等于 123
System.out.println("int 强制类型转换为 byte 后的值等于" + b);
}
}
隐含强制类型转换
- 整数的默认类型是 int。
- 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。
3.2、字符的ASCII码
本题将通过控制台输入获取一个字符,并赋值于 character,请通过 System.out.println 语句输出 character 的 ASCII 码。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// write your code here
// 通过 `Scanner` 类获取控制台输入流
Scanner scanner = new Scanner(System.in);
// 获取控制台输入的一个字符串
char character = scanner .next().charAt(0);
int ASCII = (int) character;
System.out.println(ASCII);
}
}
3.3、ASCII码对应的字符
给定一个 int 类型的数字 n,请通过 System.out.println 语句输出 n 对应 ASCII 码的字符,若超过 ASCII 码表的范围,则输出 error。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sca = new Scanner(System.in);
int n = sca.nextInt();
if(n<0||n>127){
System.out.println("error");
}
else{
System.out.println((char)n);
}
}
}
3.4、引用类型
Java 为每种基本数据类型都提供了对应的包装器类型。
基本数据类型 | 包装类型 |
---|---|
int | Integer |
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
3.5、Integer 的取值范围
您的代码需要从标准输入流(控制台)中读入两个 Integer 类型的变量 a 和 b,请判断输入的两个变量 a 和 b 的值是否相等。
public class Solution {
public boolean equivalence(Integer a, Integer b) {
// write your code here
return (int)a == (int)b;
}
}
第四章:数组
4.1、Java 数组
Arrays工具类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
下面列举一些常用的方法:
- 给数组赋值:通过 fill() 方法。
- 对数组排序:通过 sort() 方法,按升序。
- 比较数组:通过 equals() 方法比较数组中元素值是否相等。
- 数组转换:通过 asList() 将数组转换为 List (你可以在以后的章节里来学习 List)。
4.2、判断两个数组是否相等
给定两个无序整型数组 arr1 和 arr2 ,请判断这个数组中的元素是否相等(两个数组中的内容全等)。
请在类名为 Solution 的 equalityOfArrays 方法中
import java.util.*;
public class Solution {
public boolean equalityOfArrays(int[] arr1, int arr2[]) {
// -- write your code here --
Arrays.sort(arr1);
Arrays.sort(arr2);
return(Arrays.equals(arr1,arr2));
}
}
第五章 运算符
5.1、简单的加减乘除运算
本题需计算 a 与 b 的加减乘除,我们推荐使用 +,-,*,/ 来实现,
本题提供了 Solution 类,Solution 类中有四个方法,addition(加法),subtraction(减法),multiplication(乘法),division (除法)。
public class Solution {
public int addition(int a, int b) {
// write your code here
return(a+b);
}
public int subtraction(int a, int b) {
// write your code here
return(a-b);
}
public int multiplication(int a, int b) {
// write your code here
return(a*b);
}
public float division(int a, int b) {
// write your code here
return(float(a/b));
}
}
5.2、数字 2 的朋友
我们定义判断一个 int 类型的数字是不是数字 2 的朋友的标准是,这个数字是不是由不同的两个 2 的幂次方数相加得到的。现在传入一个数字 n 请你判断它是否是数字 2 的朋友,如果是则返回 true,否则返回 false。
public class Solution {
public static boolean isFriend(int n) {
// write your code here
if(n < 3) return false;
for(int i = 1; i < n; i += i){
for(int j = 1; j < n; j += j){
if(i + j == n && i != j) return true;
}
}
return false;
}
}
5.3、小数字的和
先输入一个数字 n,再输入一个 n 个数的数组,求出这个数组中不与该数组中最大数相同的数字之和。
import java.util.*;
public class Main {
public static void main(String[] args){
// write your code here
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int[] arr=new int[n];
for(int i=0; i<n; i++){
arr[i]=scan.nextInt();
}
Arrays.sort(arr);
int sum = 0;
for (int i = 0; i < n; i++) {
if(arr[i] < arr[n-1]){
sum += arr[i];
}
}
System.out.println(sum);
}
}
5.4、这是什么三角形?
输入两个 int 类型的角度,现在使用这两个角度来合成一个三角形,请判断合成的三角形是 '直角三角形'、'锐角三角形'、'钝角三角形' 还是 '无法组成三角形'。
import java.util.*;
public class Main {
public static void main(String[] args){
// write your code here
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = 180 - a - b;
if(a>0 && b>0 && a+b <180){
if(a<90 && b<90 && c< 90){
System.out.println("锐角三角形");
}else if(a + b==90 || a==90 || b==90){
System.out.println("直角三角形");
}else if(a>90 || b>90 || c>90){
System.out.println("钝角三角形");
}
}else{
System.out.println("无法组成三角形");
}
}
}
5.5、唯一存在的数字
给定一个非空的整数数组,在该数组中,有一个元素只出现了一次,其余元素均出现了两次,请找出只出现过一次的元素。请在 Solution 类中的 uniqueNumber 中写下你的代码。
import java.util.*;
public class Solution {
public int uniqueNumber(int nums[]) {
// write your code here
Arrays.sort(nums);
for (int i = 0; i < nums.length; i += 2) {
// 最后一位时的操作
if (i == nums.length - 1){
return nums[i];
}
// 两两比较,如果不同,直接返回第一个
if (nums[i] != nums[i + 1]) {
return nums[i];
}
}
return 0;
}
}
标签:Java,运算,int,System,class,语法,数组,public
From: https://www.cnblogs.com/3456939606zwp/p/17871094.html