🍬 博主介绍
👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
0x1 前言
0x2 Java 基础语法
1.1、基本语法
1.2、Java 标识符
1.3、Java 修饰符
1.4、Java 数组
1.5、题目练习-2160 · 打印 "Hello Java"
0x3 题目练习-2863 · 是否为同名同姓的两个人
0x4-拓展:流程控制语句-顺序结构
0x1 前言
练习Java代码平台这里还是给师傅们推荐炼码https://www.lintcode.com/这个平台不错,有知识点学习以及代码学习。题目位置如下:LintCode 炼码 - ChatGPT!更高效的学习体验!
0x2 Java 基础语法
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
- 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对象的行为和状态。
- 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
public class hello_world {
public static void main(String[] args) {
/*
*第一个Java程序
* 输出hello world
* */
//输出hello world
System.out.println("hello world");
}
}
运行过程解释:
1.1、基本语法
编写 Java 程序时,应注意以下几点:
- 大小写敏感:Java 是大小写敏感的,这就意味着标识符
Hello
与hello
是不同的。 - 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如
MyFirstJavaClass
。 - 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为
.java
。(如果文件名和类名不相同则会导致编译错误)。 - 主方法入口:所有的 Java 程序由
public static void main(String[] args)
方法开始执行。
1.2、Java 标识符
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于 Java 标识符,有以下几点需要注意:
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合。
- 关键字不能用作标识符。
- 标识符是大小写敏感的。
- 合法标识符举例:
age
、$salary
、_value
、__1_value
。 - 非法标识符举例:
123abc
、-salary
。
1.3、Java 修饰符
像其他语言一样,Java 可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:
- 访问控制修饰符 :
default
,public
,protected
,private
。 - 非访问控制修饰符 :
final
,abstract
,static
,synchronized
。
在后面的章节中我们会深入讨论 Java 修饰符。
1.4、Java 数组
数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。
1.5、题目练习-2160 · 打印 "Hello Java"
描述:
这是 Java
入门练习的第一个程序,我们要做的就是把 “Hello Java” 打印到控制台。
我们需要这样一段代码来实现:
public class Solution {
public static void main(String[] args) {
}
}
其中 第一行的 Solution
代表类名,第二行的 public
代表访问修饰符,static
代表关键字,void
代表返回值类型,main
代表方法名,String
代表 String
类,args
代表字符串数组。这些东西你只需要记住就好,我们要做的就是要使用输出语句 System.out.println("");
打印 “Hello Java”,输出语句写在 main
方法中。
解答:
public class Solution {
/* Your first java code
* print Hello Java to console
*/
public static void main(String[] args) {
// write your code here
System.out.println("hello world");
}
}
0x3 题目练习-2863 · 是否为同名同姓的两个人
描述:
现在学校编写一个程序,判断两个人是否为 同名同姓的两个人
。学校中的人员角色分为学生和老师两种,我们规定在同一个角色群体中,名字相同但年龄不同的两个人为 同名同姓的两个人
。请在 Solution
类的 determineUserName
方法中实现该功能。
解答:
用来做javaSE的巩固还不错,但题目不太严谨,应该是同类下:同姓名、不同年龄判为true,其他一律判为false。
这个题目总共四个类:
1、Solution类:
package 炼码;
public class Solution {
public boolean determineUserName(Object Object1, Object Object2) {
//检查对象是否为学生
if (Object1 instanceof Student && Object2 instanceof Student){
//如果都是学生,则转换成学生对象进行比较
Student student1 = (Student) Object1;
Student student2 = (Student) Object2;
//判断姓名是否相等
if (student1.getName().equals(student2.getName())){
//如果相等,进一步判断
if (student1.getAge()== student2.getAge()){
return false;
}
}else {
return true;
}
}
//检查是否是老师
if (Object1 instanceof Teacher && Object2 instanceof Teacher){
//如果都是老师,则转换成老师对象进行比较
Teacher teacher1 = (Teacher) Object1;
Teacher teacher2 = (Teacher) Object2;
//判断姓名是否相同
if (teacher1.getName().equals(teacher2.getName())){
//如果姓名相同,进一步判断
return false;
}else {
return true;
}
}
//前学生后老师
//前老师后学生
//前后都不在老师和学生中
//其他情况
//均返回false
return false;
}
}
2、Student 类
package 炼码;
public class Student {
private int age;
private String name;
public Student() {
}
public Student(String name, int age) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3、Teacher类
package 炼码;
public class Teacher {
private int age;
private String name;
public Teacher() {
}
public Teacher(String name, int age) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4、Main 类
package 炼码;
import java.io.FileReader;
import java.io.PrintStream;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try {
String inputPath = args[0];
String outputPath = args[1];
Scanner in = new Scanner(new FileReader(inputPath));
PrintStream ps = new PrintStream(outputPath);
// get data
String str1 = in.nextLine();
String str2 = in.nextLine();
String strArr1[] = str1.split(" ");
String strArr2[] = str2.split(" ");
Object oj1 = null;
Object oj2 = null;
if ("student".equals(strArr1[0].toLowerCase())) {
oj1 = new Student(strArr1[1], Integer.parseInt(strArr1[2]));
}
if ("student".equals(strArr2[0].toLowerCase())) {
oj2 = new Student(strArr2[1], Integer.parseInt(strArr2[2]));
}
if("teacher".equals(strArr1[0].toLowerCase())) {
oj1 = new Teacher(strArr1[1], Integer.parseInt(strArr1[2]));
}
if("teacher".equals(strArr2[0].toLowerCase())) {
oj2 = new Teacher(strArr2[1], Integer.parseInt(strArr2[2]));
}
Solution solution = new Solution();
boolean rs = solution.determineUserName(oj1, oj2);
ps.print(rs);
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
0x4-拓展:流程控制语句-顺序结构
顺序结构
package heima;
public class demon_1 {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
}
}