(1)单行注释:以“ // ”开头后面接所要加的说明的内容。如下面所示: //定义变量a int a = 10; //定义变量b int b = 20;上面的语句中,在编译的过程就会直接略过注释,只会编译 int a = 10 和 int b = 20这两句。由此可见注释只是起着说明的作用。
创新互联专注于企业成都全网营销推广、网站重做改版、荔浦网站定制设计、自适应品牌网站建设、H5页面制作、电子商务商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为荔浦等各大城市提供网站开发制作服务。
(2)多行注释:以“/*”开头,以“*/”结尾。 假设当你要说明你所写的代码的功能时。要说明的内容有很多。如果全部放在同一行会显得很难看。所以一般会用多行来写,如下所示// 说明//说明//说明//说明以上是用四个单行注释来注释四行说明。但如果有10行说明就要按十个“//”这显示很麻烦,所以这时就可采用多行注释。上面的可改成:/*说明说明说明说明*/也可以这样/* 说明 说明 说明 说明 */
(3)文档注释:以“/**”开头,以“*/”结尾。文档注释主要是生成文档的。
环境:JDK1.8+。然后复制粘贴代码即可用。
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
public class MainController {
public static void main(String[] args) {
//一.将图一四个人的信息放入list中
ListStudent students = new ArrayList();
Student s1 = new Student("小赵",getTime("1992.08.11"),400);
Student s2 = new Student("小钱",getTime("1995.01.24"),750);
Student s3 = new Student("小孙",getTime("1990.06.05"),670);
Student s4 = new Student("小李",getTime("1991.12.17"),550);
students.add( s1 );
students.add( s2 );
students.add( s3 );
students.add( s4 );
//二.计算四个人成绩的平均值,并输出每个人比平均值多或少多少分。
System.out.println("二.计算四个人成绩的平均值,并输出每个人比平均值多或少多少分。");
average( students );
//三.将四人排序输出,控制台输出结果请参照图二
System.out.println("三.将四人排序输出,控制台输出结果请参照图二");
sort( students );
//四.用递归计算出小赵的成绩以每月2%的增长,多少个月后他的成绩可以超过小钱。
System.out.println("四.用递归计算出小赵的成绩以每月2%的增长,多少个月后他的成绩可以超过小钱。");
markBeyong( students.get(0).getMark() , students.get(1).getMark() );
}
public static void average( ListStudent students ){
int sum = 0;//总成绩
for ( Student student: students ){
sum = sum + student.getMark();
}
int average = sum/students.size();//平均成绩
students.forEach( student - {
if ( student.getMark() average ){
System.out.println( student.getName() + "比平均分高:" + (student.getMark() - average) );
}else if ( student.getMark() average ){
System.out.println( student.getName() + "比平均分低:" + ( average - student.getMark()) );
}else {
System.out.println( student.getName() + "和平均分一样" );
}
} );
}
public static void sort( ListStudent students ){
ListStudent studentBir = new ArrayList();
studentBir.addAll( students );
System.out.println("①第一种排序,按照出生年月日升序;");
Collections.sort( studentBir, (o1, o2) - ( o1.getBirthDay().compareTo( o2.getBirthDay() ) ) );
studentBir.forEach( stu -{
System.out.println( stu.getName() + " | " + getTime(stu.getBirthDay()) + " | " + stu.getMark() );
} );
System.out.println(" ②第二种排序,按照成绩降序;");
ListStudent markDesc = students.stream().sorted((a, b) - b.getMark() - a.getMark()).collect(Collectors.toList());
markDesc.forEach( stu -{
System.out.println( stu.getName() + " | " + getTime(stu.getBirthDay()) + " | " + stu.getMark() );
} );
System.out.println("③比较输出:计算他们互相大多少天,要考虑到闰年。");
for ( int i = 0 ; i students.size() ; i++ ){
for ( int j = i + 1 ; j students.size() ; j++ ){
Long ageSub = students.get( i ).getBirthDay().getTime() - students.get( j ).getBirthDay().getTime();
Long dateSub = ageSub/(1000*60*60*24);
if ( dateSub 0 ){
System.out.println( students.get( i ).getName() + "比" + students.get( j ).getName() + "大" + dateSub );
}else if ( dateSub 0 ){
System.out.println( students.get( i ).getName() + "比" + students.get( j ).getName() + "小" + -dateSub );
}else {
System.out.println( students.get( i ).getName() + "和" + students.get( j ).getName() + "同日出生" );
}
}
}
}
public static void markBeyong( int mark ,int targetMark){
double markDou = mark;
double targetMarkDou = targetMark;
boolean b = true;
int month = 0;
while ( b ){
if ( markDou targetMarkDou ){
markDou = markDou*1.02;
month ++;
}else {
System.out.println("一共用了" + month + "个月反超");
b = false;
}
}
}
public static Date getTime( String target ) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
Date date = sdf.parse(target);
return date;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static String getTime( Date target ) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
String date = sdf.format( target );
return date;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
class Student {
private String name;
private Date birthDay;
private Integer mark;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}
public Integer getMark() {
return mark;
}
public void setMark(Integer mark) {
this.mark = mark;
}
public Student(){
}
public Student(String name,Date birthDay , Integer mark){
this.name = name;
this.birthDay = birthDay;
this.mark = mark;
}
}
//该函数的功能是将字符串s中的‘\’用‘%5C’代替
public String replaceString(String s)
{
char ac[] = s.toCharArray();//将字符串s转换成字符数组ac
int ai[] = new int[10];//定义整形数组ai,用于记录‘\’的位置
int i = 0;//定义i作为计数变量
//循环,找出字符数组ac中字符'\'的个数和位置
for(int j = 0; j != ac.length; j++)
{
char c = ac[j];
if(c == '\\')
{
ai[i] = j;
i++;
}
}
int k = i + 1;
String as[] = new String[k];//定义字符串数组as
as[0] = s.substring(0, ai[0]);
//将字符串s中被‘\’分割的字符串存到字符串数组as中
as[k - 1] = s.substring(ai[i - 1] + 1);
for(int l = 1; l != as.length - 1; l++)
as[l] = s.substring(ai[l - 1] + 1, ai[l]);
s = "";
//将as数组中的字符串连起来,字符串之间用%5C隔开
for(int i1 = 0; i1 != as.length - 1; i1++)
s = s + as[i1] + "%5C";
s = s + as[k - 1];
return s;
}