JAVA语法题


import java.util.*;

public class Birthdays {
    public static void main(String[] args){
    	Map<Friends, String> hm = new HashMap<Friends,String>();
    	Friends f1 = new Friends("Charis");
    	Friends f2 = new Friends("Darling");
    	hm.put(f1, "summer 2009");
    	hm.put(f2, "spring 2002");
    	System.out.println(hm.get(f1));
    	Friends f3 = new Friends("Darling");
    	System.out.println(hm.get(f3));
    }
}
class Friends{
	String name;
	Friends(String n){
		name = n;
	}
}

结果:

summer 2009
null

  

2.  enum用法 

public class WeatherTest {
    static Weather w;
    public static void main(String[] args){
    	System.out.println(w.RAINY.count+" "+w.Sunny.count+" ");
    }
}
enum Weather{
	RAINY, Sunny;
	int count = 0;
	Weather(){
		System.out.print("c ");
		count++;
	}
}

结果

c c 1 1
public class WeatherTest {
    static Weather w;
    public static void main(String[] args){
    	System.out.println(w.RAINY+" "+w.Sunny+" ");
    }
}
enum Weather{
	RAINY(1), Sunny(2);
	private  int n;
	private Weather(int n){
		this.n=n;
	}
	@Override
        public String toString() {
             return String.valueOf(this.n);
        }
}

结果

1 2

枚举的遍历:

public class WeatherTest {
	enum Weather{
		RAINY(1), Sunny(2);
		private  int n;
		private Weather(int n){
			this.n=n;
		}
		 @Override
	    public String toString() {
	        return String.valueOf(this.n);
	    }
	}
    public static void main(String[] args){
    	Weather[] allW = Weather.values();
    	for(Weather w: allW)
    	System.out.print(w+" ");
    }
}

结果同上, 1 2

3. 数值类型题

public class Dec26 {

    public static void main(String[] args){
    	short a1=6;
    	new Dec26().go(a1);
    	new Dec26().go(new Integer(7));
    }

    void go(short x){
    	System.out.print("S ");
    }
    void go(Long x){
    	System.out.print("L ");
    }
    void go(int x){
    	System.out.print("i ");
    }
    void go(Number n){
    	System.out.print("N ");
    }

}

结果:

S N

4. switch, case  

public class Humping {
    public static void main(String[] args) {
    	String r="-";
    	char[] c={‘a‘,‘b‘,‘c‘,‘z‘};
    	for(char c1:c)
    		switch(c1){
    			case ‘a‘:
    				r+="a";
    			case ‘b‘:
    				r+="b";
    				break;
    			default:
    				r+="X";
    			case ‘z‘:
    				r+="z";
    		}
    		System.out.println(r);
    }
}

结果:

-abbXzz

5. HashMap键值为空的问题

HashMap:适用于在Map中插入、删除和定位元素。 
Treemap:适用于按自然顺序或自定义顺序遍历键(key)。

两者都是非线程安全,前者无排序,后者会自动排序

Ø  HashMap里面存入的键值对在取出的时候是随机的,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap是最好的选择。

Ø  TreeMap取出来的是排序后的键值对。插入、删除需要维护平衡会牺牲一些效率。但如果要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。

本测试增加和查找功能,HashMap比TreeMap的效率要高。

import java.util.*;
public class Garage {

    public static void main(String[] args) {
    	Map<String,String> hm=new HashMap<String,String>();
    	String[] k={null,"2","3",null,"5"};
    	String[] v={"a","b","c","d","e"};
    	for(int i=0;i<5;i++){
    		hm.put(k[i],v[i]);
    		System.out.print(hm.get(k[i])+" ");
    	}
    	System.out.print(hm.size()+" "+hm.values()+"\n");
    }
}

结果

a b c d e 4 [c, d, b, e]

换成TreeMap报错, 所以 TreeMap键值不允许空 

null和" "的区别:

import java.util.*;
public class Garage {

    public static void main(String[] args) {
    	Map<String,String> hm=new HashMap<String,String>();
    	String[] k={null,"2","3"," ","5"};
    	String[] v={"a","b","c","d","e"};
    	for(int i=0;i<5;i++){
    		hm.put(k[i],v[i]);
    		System.out.print(hm.get(k[i])+" ");
    	}
    	System.out.print(hm.size()+" "+hm.keySet()+" "+hm.values()+"\n");
    }
}

结果

a b c d e 5 [3, null, 2,  , 5] [c, a, b, d, e]

  

 

 

 

  

 

时间: 2024-11-11 12:47:28

JAVA语法题的相关文章

【原创】这道Java基础题真的有坑!我也没想到还有续集。

前情回顾 自从我上次发了<这道Java基础题真的有坑!我求求你,认真思考后再回答.>这篇文章后.我通过这样的一个行文结构: 解析了小马哥出的这道题,让大家明白了这题的坑在哪里,这题背后隐藏的知识点是什么. 但是我是万万没想到啊,这篇文章居然还有续集.因为有很多读者给我留言,问我为什么?怎么回事?啥情况? 问题片段一:到底循环几次? 有很多读者针对文章的下面的这个片段: 来问了一些问题:为什么会循环三次?循环二次?循环一次? 源码看的脑袋疼.那我觉得我需要"拯救"一下这个哥们

eclipse使用与java语法规则

eclipse的使用 1.运行点击"三角图标"或右键Run As运行2.3. java语法规范 1.括号要成对出现2.每句代码应该有分号结束3.java语法区分大小写4.一个文件只能写一个带有public的class声明,还必须和文件名一致.一个文件中不可以有多个带有public的修饰符号5.名称写的时候不要包含关键字和非法字符(字母和下划线开头可以,也可以用数字结尾)6.java代码的语法全部都是半角符号7.学会规范的写代码. 写代码的好习惯: 1.常按保存,写完一句或几句就按一次C

Java语法基础

Java语法基础 1.  关键字 某些单词对编译器有着特殊的含义,并且不能作为标示符使用,全部是小写字母 Java语言关键字 abstract boolean break byte case catch char class try do default continue double else extends assert final finally float for If implement import instanceof int interface long native new g

深入理解java虚拟机(十二) Java 语法糖背后的真相

语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言的功能产生任何影响,却能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会.但是如果只是大量添加和使用语法糖,却不去了解他,容易产生过度依赖,从而无法看清语法糖的糖衣背后,程序代码的真实面目. 总而言之,语法糖可以看做是编译器实现的一些"小把戏",这些"小

java语法糖

语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用了.这些语法糖虽然不会提供实质性的功能改进,但是它们或能提高性能.或能提升语法的严谨性.或能减少编码出错的机会.Java提供给了用户大量的语法糖,比如泛型.自动装箱.自动拆箱.foreach循环.变长参数.内部类.枚举类.断言(assert)等 断言(as

程序员带你学习安卓开发,十天快速入-对比C#学习java语法

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 上次课程:.程序员带你学习安卓开发,十天快速入门-开发工具配置学习讲的是java环境的配置以及as安装工具的安装. 其中有网友@鹅鹅鹅_说道,其实jdk的环境变量配置,不用配置的那么麻烦了.当前的jdk版本只要设置一个变量javahome就可以了,其他的可以不需要配置.在这里提一下.

java语法基础一

Java语法基础一 Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注:1.Java是严格区分大小写的. 2.Java程序中一句连续的字符串不能分开在两行中写. Java程序的注释 Java里的注释有三种类型: 1.单行注释 在注释内容前面加“//”,格式为: 代码; //注释内容 2.多行注释 以斜杠加星号开头,以星号加斜杠结尾. 3.文档注释 以斜杠加两个星号

一道很有意思的java线程题

这几天看结城浩的<java多线程设计模式>,跟着做一些习题,有几道题目很有意思,记录下自己的体会. 首先是题目(在原书212页,书尾有解答): public class Main { public static void main(String[] args) { try { Blackhole.enter(new Object()); } catch (InterruptedException e) { e.printStackTrace(); } } } public class Blac

java语法

Comparable<T>中,对于返回,尽量不要使用value1 - value2,万一value1是很大的正数,value2是很大的负数,那么容易造成溢出 Comparable接口中,经常有T extends Comparable<? super T>的,该怎么理解 Orange extends Comparable<Fruit> and Fruit super Orange 就是继承这个接口的类,可以用Collections.sort之类的的generic方法来比较