java基础有关面试题(一)

Java语言8种基本数据类型是哪些?

是:byte,short,int,long,float,double,boolean,char。

Java类型转化

1字节(byte)(读音:拜)=8位(bit)(读音:屁)

什么是类?什么是对象?

类是对象的一个模板,对象是类的一个实例,简单来说就是一个月饼的模型,盖出来的就是一个月饼。

模型就是一个类,实例就是月饼。生活中的人类、狗类、猫类都可以是一个类,而具体的一只猫或者狗就是这个类的实例。

猫会叫,猫有毛发,狗会吠,狗也有毛发,会叫就是这个类中的一个方法,毛发就是他们的属性,这里说到了毛发,猫和狗都有

毛发,这里可以延伸到面向对象的继承和多态,【继承>>】定义猫和狗是一个动物类,都继承了动物类后就有了动物类里面的属性,都有了毛发。【多态>>】猫和狗都会叫,但是猫和狗的叫声不同,当调用了动物类叫的那个方法后,猫叫猫的声音,狗吠出狗的声音,这就体现了面向对象的多态。

注:面向对象的三大特性(封装、继承、多态)

如何简单描述ssm框架?

Ssm框架由Spring+springMVC+mybatis三个开源框架整合而成,常作为数据源较简单的web项目框架。其中spring是一个轻量级的控制反转(Ioc inversion of controller)和面向切面(AOP:Aspect Oriented Programming)的容器框架。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。Mybatis是一个支持普通的sql查询,存储过程和高级映射的优秀持久层框架。

关于IOC 和 DI

IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式

nDI(Dependency Injection) IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如: setter 方法)接受来自如容器的资源注入. 相对于 IOC 而言,这种表述更直接一点。

 

Java中的泛型集合有哪些?不同之处在哪里?怎么遍历?

 

List是接口,List特性就是有序,会确保一定的顺序保存元素。

 

ArrayList是它的实现类,是一个用数组实现的List。

 

例如:List list = new ArrayList();

 

Map是接口,Map特性就是根据一个对象查找对象.

 

HashMap是它的实现类,HashMaphash表实现的Map,就是利用对象的hashcode(hashcode()Object的方法)进行快速散列查找. 一般情况下,如果没有必要,推荐代码只同List,Map接口打交道

 

HashSetHashTable实质使用HashMap实现的;

 

HashSetset的一个实现类,hashMapMap的一个实现类,同时hashMaphashTable的替代品。

 

接下来看遍历各种集合。

 

 

public class MapTest {

 

       public static void main(String[] args) {

 

              //创建map对象,并赋值

             

              Map<String,String> treeMap = new TreeMap<String,String>(new Comparator<String>() {

                     @Override

                     public int compare(String o1, String o2) {

                            return o1.compareTo(o2);

                     }

              });

             

              treeMap.put("sufow1", "彭豪1");

              treeMap.put("sufow2", "彭豪2");

              treeMap.put("sufow3", "彭豪3");

              treeMap.put("sufow4", "彭豪4");

              System.out.println("TreeMap");

              //遍历map 方式一,根据keyset方法获取所有的key,再根据key获取值

              for(String str :treeMap.keySet()){

                     String val = treeMap.get(str);

                     System.out.println(val);

              }

             

              Map<String,String> hashMap = new HashMap<String ,String>();

              hashMap.put("sufow1", "彭豪1");//可以写入null值

              hashMap.put("sufow2", "彭豪2");

              hashMap.put("sufow3", "彭豪3");

              hashMap.put("sufow4", "彭豪4");

              System.out.println("HashMap");

             

              //先排序

             

              List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(hashMap.entrySet());

             

              //通过比较器来排序

              Collections.sort(list, new Comparator<Map.Entry<String, String>>() {

                     @Override

                     public int compare(Entry<String, String> o1,

                                   Entry<String, String> o2) {

                            return o1.getValue().compareTo(o2.getValue());

                     }

              });

             

              //遍历List,第二种通过Map.Entry

              for(Map.Entry<String, String> m :list){

                     String val =  m.getValue();

                     System.out.println(val);

              }

             

              //第二种遍历map的方式,根据迭代器Iterator

              Iterator<Map.Entry<String, String>> iterator = hashMap.entrySet().iterator();

             

              while(iterator.hasNext()){

                     Map.Entry<String, String> map = iterator.next();

                     System.out.println(map.getKey());

                     System.out.println(map.getValue());

              }

             

              //第三种通过values,只能遍历value

              for(String str:hashMap.values()){

                     System.out.println(str);

              }

             

             

              //第四种,通过Map.Entry

              for(Map.Entry<String, String> map:hashMap.entrySet()){

                     System.out.println(map.getKey());

                     System.out.println(map.getValue());

              }

       }

------------------------------------------------------------------------------

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值