Java基本

eclipse编译器:

1、JAVA 8指的是JDK1.8(又称JDK8.0)
2、打开左侧的项目栏:
	
    eclipse左侧的项目栏是项目资源管理器;在窗口-显示视图,找到项目资源管理器,打开即可;windows->show viewer->Project Explorer

代码规范:

一、输入输出:
        1、static Scanner in=new Scanner(new BufferedInputStream(System.in));
        2、static PrintWriter out=new PrintWriter(new BufferedOutputStream(System.out));
        3、java中的printf打印double时,也用%f,没有l  //L
        4、java中的printf打印long时,用%d,没有ll
        5、in.hasNext();   // 判断缓存区中还有没有数据,有返回true, 否则等待输入。
	
二、main函数之前的东西 1、static int N=(int)1e6+7; 2、static InputReader in=new InputReader(); 3、static PrintWriter out=new PrintWriter(new BufferedOutputStream(System.out)); 三、数组: 1、static int[] a=new int[7];   //数组定义  //定义一偏名为a的int空间   3、初始化:Arrays.fill(int[] arr, int x); //将arr内的每个元素赋值为x

注意事项:

1、基本类型的大写是包装类,需要使用equals来判断,注意容器中用的是包装类
测试的时候写成==可以通过是因为Integer在-128~127的范围内==和equals的判断结果是一样的,因为Integer内一个叫IntegerCache的静态类
Integer和int比较时会自动拆箱所以用==也没问题,注意两个包装类比较用equals比较值,而不是用==比较地址
包装类运算时会转回基本类型



输入输出:

快读:当输入规模达1e6时,用快读,其他时候没必要
        static InputReader in=new InputReader();
	
	static class InputReader{     //快速输入  //静态内部类,主类不能静态,主类只能公开、抽象、final
		BufferedReader buf;
		StringTokenizer tok;   //字符串分隔解析类
		InputReader() {
			buf=new BufferedReader(new InputStreamReader(System.in));
		}
		boolean hasNext() {
			while(tok==null || !tok.hasMoreElements()) {
				try {
					tok=new StringTokenizer(buf.readLine());
				} catch (Exception e) {
					return false;
				}
			}
			return true;
		}
		String next() {
			if(hasNext()) return tok.nextToken();
			return null;
		}
                String nextLine() {          String str=null;          try {             str=buf.readLine();             } catch (Exception e) {             e.printStackTrace();             }             return str;     }
		int nextInt() {
			return Integer.parseInt(next()); //parseInt解析字符串,并返回一个整数   
			//next()是读取下一个字符串
		}
		long nextLong() {
			return Long.parseLong(next());
		}
		double nextDouble() {
			return Double.parseDouble(next());
		}
		BigInteger nextBigInteger() {
			return new BigInteger(next());
		}
		BigDecimal nextBigDecimal() {   //高精度
			return new BigDecimal(next());
		}
	}
快写
        public static void main(String[] args) throws IOException{   //异常要么抛出(throws),要么抓住(try-catch)
		int n=2;
	
		//快速输出:
		PrintWriter out=new PrintWriter(new BufferedOutputStream(System.out));
		out.println(n);
		out.printf("%d",n);
		out.flush();  //将输出缓冲区清空
		//注意要在最后刷新输出缓冲区, 就是记得加上out.flush(),否则会什么也不输出
		//out.close();	//关闭输入流,和flush不一样,flush比较好
	}

注:


字符串:

1、输入字符:char ch=in.next().charAt(0);
2、String str=in.next();    //输入字符串
3、Sting str=in.nextLine();   //读入一行
4、str.equals(str2);   //比较函数;直接用==的话,要str和str2的地址和内容都相等才返回true
5、char[] ch=s.toCharArray();  // 字符串转换为字符数组,字符数组可以访问下标,且能 ++和 --

sort:

sort: Arrays.sort(a,1,n+1);  //排序,基本类型,默认升序
	    1、自定义比较算子(4种写法):  Arrays.sort(a,1,n+1,(x,y)->(y-x));   //自定义比较算子不能是基本类型    //升序是x-y,降序是y-x
	    2、匿名内部类:
	                Arrays.sort(a,1,n+1,new Comparator<Integer>() {             
	                     @Override             
	                     public int compare(Integer o1, Integer o2) {                 
	                         // TODO Auto-generated method stub                 
	                         return o2-o1;             
	                      }         
	               });
	    3、定义一个比较类实现Comparator接口的compare方法
	    4、在定义类时,实现Comparator接口的compareTo方法
集合【容器】用collections.sort 排序

结构体【类】

class L{
	int a,b;	
}

        public static void main(String[] args) throws IOException{         x.a=3;         x.a=in.nextInt();         out.print(x.a);                                    out.flush();     }
类数组
import java.util.Arrays;

class Point implements Comparable<Point>{
     int x,y;
    //自定义的比较函数,此例中先x后y从小到大排序
    @Override
    public int compareTo(Point o) {
        return x!=o.x? x-o.x: y-o.y;
    }
}

public class Main {

    public static void main(String[] args) {
        //Java里的数组要先new数组,再new每个元素,不是数组有了每个元素也就有了
        Point[] p = new Point[3];
        for(int i = 0;i < p.length;++i){
            p[i] = new Point();
        }
        //不用上面的for把每个元素new出来直接进行下面的赋值会空指针的
        //其实应该在Point里重载有参的构造函数,直接在new的时候初始化,这样代码简洁些
        p[0].x = 3;
        p[0].y = 3;
        p[1].x = 1;
        p[1].y = 4;
        p[2].x = 3;
        p[2].y = 1;
        //sort还可以在第2、3个参数上指定排序起止
        Arrays.sort(p);//先x后y从小到大排序
        for(Point t:p){
            System.out.println(t.x + " " + t.y);
        }
    }
}








全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
9135次浏览 83人参与
# 你的实习产出是真实的还是包装的? #
1689次浏览 40人参与
# 巨人网络春招 #
11297次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7398次浏览 42人参与
# 简历第一个项目做什么 #
31507次浏览 327人参与
# 重来一次,我还会选择这个专业吗 #
433312次浏览 3926人参与
# 米连集团26产品管培生项目 #
5634次浏览 214人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186904次浏览 1120人参与
# 牛客AI文生图 #
21399次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152272次浏览 887人参与
# 研究所笔面经互助 #
118859次浏览 577人参与
# 简历中的项目经历要怎么写? #
309957次浏览 4189人参与
# AI时代,哪些岗位最容易被淘汰 #
63328次浏览 799人参与
# 面试紧张时你会有什么表现? #
30479次浏览 188人参与
# 你今年的平均薪资是多少? #
212986次浏览 1039人参与
# 你怎么看待AI面试 #
179809次浏览 1230人参与
# 高学历就一定能找到好工作吗? #
64296次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76415次浏览 374人参与
# 我的求职精神状态 #
447963次浏览 3128人参与
# 正在春招的你,也参与了去年秋招吗? #
363202次浏览 2637人参与
# 腾讯音乐求职进展汇总 #
160566次浏览 1110人参与
# 校招笔试 #
470114次浏览 2961人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务