资源描述
黑马程序员济南中心 编著黑马程序员 JavaEE 基础班知识点整理天地玄黄,宇宙洪荒。如果你也和我一样看过不少网络小说,那你的想象力肯定很丰富,这点作为程序员是很重要的。如果你和我一样喜欢黑客帝国银河系漫游指南钢铁侠三体西部世界。那有可能科幻就是你坚持钻研技术的动力来源。虽然我们暂时不能像黑客帝国里一样进入虚拟世界,不能像邓肯一样到宇宙尽头餐馆吃饭,没有贾维斯的智能管家系统,也不能把机器人做的无法分辨真伪,但是如果没有人们对未来的想象我们的技术就没有了追求。这些追求促使我们不断的学习,让技术不断的前进,我相信这些电影电视小说里的情节一定会实现。抱有这样的期待和好奇很多同学来到黑马学习技术,首先接触的就是黑马的基础班。视频课程,讲义是必须的,但是我们还要有知识的梳理。今天我们就整理了基础班的一下问答和笔试题供大家交流学习。希望大家梳理一下自己的基础知识,基础知识是我们技术飞船的主架,主架坚固才能让我们在宇宙里航行的更远理论知识点一、基础概念黑马程序员济南中心 编著1、面向对象的理解并举例2、面向对象的三大特性,并分别阐述对每个特性的理解3、阐述成员变量和局部变量的区别4、构造方法的概念和作用,和一般方法的区别5、静态代码块、构造代码块、构造方法的特点及执行顺序6、描述类和对象的关系7、创建对象的步骤 等二、IO 流理论知识点:1、io 流的基本流都有哪些,简单说说基本流的体系2、字节流和字符流的使用场景3、拷贝文本文件一般会用到哪个流?为什么?4、在 io 流中拷贝文件一般会用哪几个流?5、在 io 流的拷贝过程中,通过 while 循环读取字节进行拷贝,需要通过哪个流 的什么方法读取字节6、File 类的常用方法都有哪些?7、遍历指定目录下的文件的所有名称,一般用什么方法?8、在 io 流中一般常用的字符编码集都有哪些?简单阐述几种9、在字符流中,带缓冲区的包装流都有哪一些?具体阐述一下。黑马程序员济南中心 编著10、为什么 read()方法返回值是 int 类型?11、标准输入流和输出流是什么?三、集合理论知识点1、集合的由来2、数组和集合的使用场景3、数组和集合的区别4、集合的遍历5、在迭代集合中元素时,可不可以通过集合对象的方法操作集合中的元素?6、List 的三个子类的特点7、栈和队列数据结构8、List 有三个儿子,在不同的场景分别应该使用谁呢?9、HashSet 保证元素唯一的原理10、TreeSet 两种排序方式11、list 集合和 set 集合有什么区别?12、双列集合获取键和值的两种方式13、HashMap 和 Hashtable 的区别14、Collection 和 Collections 的区别?四、反射理论知识点1、反射概述2、获取类的字节码文件三种方式黑马程序员济南中心 编著五、线程理论知识点1、线程的生命周期。2、多线程的使用场景是什么?3、简述通过 Runnable 实现多线程的步骤。4、线程和进程的区别是什么?5、一个线程从等待状态被唤醒后是直接进入运行状态么?6、实现多线程有几种方式?7、对常用的实现多线程的方法做一个对比。8、如何使用匿名内部类实现多线程?9、如何获取当前线程的名字?10、如何实现线程的等待和休眠?11、Sleep 和 Wait 方法的可以传参数么?12、Sleep 方法和 Wait 方法的参数代表什么意义?13、如何唤醒等待中的线程?14、同步代码块和同步方法的使用场景是什么?15、同步方法的锁对象是什么?16、对懒汉式和饿汉式做一个对比。17、什么是工厂设计模式?18、死锁产生的原因是什么?19、简述线程池的应用场景。20、Timmer 类的使用场景。黑马程序员济南中心 编著21、说一下你所学过的和线程安全有关并且是线程安全的类有哪些?编程知识点一、IO 流编程知识点:1、车库里有各种牌子的车,请根据这个生活中的案例用代码实现出来。有一个 garage 类(车库类),里面有很多车,车库类有车名(name),车牌号(number),颜色(colour),价格(price)等属性。提示用户输入自己喜欢的三种车的车名,车牌号,颜色,价格。然后根据输入的车的价格的降序进行排序,将输出的结果存到根目录下的 a.txt中。比如:路虎-京 B8888-黑色-12000002、提示用户输入一串字符串,统计出字符串中每个字符出现的次数,将结果写入到 a.txt中。二、集合编程知识点:1、按照以下需要实现相关功能,需求如下:1)分别键盘录入 5 个人的相关信息(姓名、年龄、性别)2)定义一个方法将键盘录入的相关信息封装成 Person 对象,把对象存储在集合中并且遍历输出 Person 对象所有相关信息。黑马程序员济南中心 编著3)将集合中 Person 对象年龄大于 60 的对象删除并且将其相关信息输出到控制台上2、已知有一 Map 集合,请实现如下需求:A:向 map 集合中添加 3 组数据,例如:1=woaijavajavaaiwo;2=woaiheima,b;B:提示用户录入编号及内容,然后将内容(value)进行反转 /例如:用户输入 woaijava 存入顺序为 avajiaow;C:将集合中的值写入到 D:a.txt 中。三、线程编程知识点:1、通过继承 Thread 类的方式创建两个线程,在 Thread 类的构造方法中指定线程的名字,开启线程并输出 10 次每次执行的是哪条线程。2、用多线程知识完成模拟抢红包的过程,5 个人共抢 10 个红包,红包的金额 06 元不等(包含 0 和 6),每个人相当于 1 个线程。在控制台打印出每个人抢到红包的总金额。四、JDBC 知识点:利用 SQLyog 创建 itheimadb 数据库和 stu 表,表中字段有:name(varchar 类型),age(int 类型),java(double 类型),c(double 类型),oc(double 类型),Chinese(double 类型),并将以下数据添加到 stu 表中(以上操作均可以使用 SQLyog完成);利用 JDBC 连接 itheimadb 数据库使用 sql 语句按要求完成以下功能 id nameagejavacocchinese黑马程序员济南中心 编著1zs1210098100202ls245051921003andi34201015604aliy213010015655wn1180218712a.输出年龄在 20 岁以上的学员所有学科的总分b.将 andi 的 java 成绩改为 100,C 语言成绩改为 60c.在控制台上打印出 Java 学科和 c 学科都是 60 分以下的学员姓名参考答案:一 1:车库类AppleScript 纯文本查看 复制代码?0102030405public class Garage private String name;private String number;private String colour;private int price;黑马程序员济南中心 编著06070809101112131415161718192021222324252627 public Garage(String name,String number,String colour,int price)super();this.name=name;this.number=number;this.colour=colour;this.price=price;public String getName()return name;public void setName(String name)this.name=name;public String getNumber()return number;public void setNumber(String number)this.number=number;public String getColour()return colour;黑马程序员济南中心 编著28293031323334353637383940414243 Override public String toString()return Garage name=+name+,number=+number+,colour=+colour+,price=+price+;public void setColour(String colour)this.colour=colour;public int getPrice()return price;public void setPrice(int price)this.price=price;示例代码:AppleScript 纯文本查看 复制代码?010203public class Test01 public static void main(String args)throws IOException ArrayList list=new ArrayList();黑马程序员济南中心 编著04050607080910111213141516171819202122232425 System.out.println(请输入自己喜欢的三种车的车名,车牌号,颜色,价格);Scanner sc=new Scanner(System.in);for(int i=0;i 3;i+)String name=sc.next();String number=sc.next();String colour=sc.next();int price=sc.nextInt();/System.out.println(name+number+colour+price);Garage cars=new Garage(name,number,colour,price);list.add(cars);System.out.println(添加成功!);for(int j=0;j list.size()-1;j+)/降序排列 for(int i=0;i list.size()-1-j;i+)Garage car1=list.get(i);Garage car2=list.get(i+1);if(car1.getPrice()car2.getPrice()list.set(i+1,car1);list.set(i,car2);黑马程序员济南中心 编著2627282930313233343536 BufferedWriter bf=new BufferedWriter(new FileWriter(a.txt);for(int i=0;i list.size();i+)bf.append(list.get(i).toString();bf.newLine();bf.flush();/System.out.println(list.get(i).toString();bf.close();System.out.println(信息已写入 a.txt);一、2:AppleScript 纯文本查看 复制代码?01020304050607public class Test02 public static void main(String args)throws IOException System.out.println(请输入一个字符串);Scanner sc=new Scanner(System.in);String str=sc.next();/System.out.println(str);Set set=new HashSet();黑马程序员济南中心 编著08091011121314151617181920212223242526272829 char chars=str.toCharArray();for(int i=0;i chars.length;i+)set.add(charsi);/去重,Map map=new HashMap();for(int i=0;i chars.length;i+)if(set.contains(charsi)&!map.containsKey(charsi)map.put(charsi,1);else if(set.contains(charsi)&map.containsKey(charsi)map.put(charsi,(int)map.get(charsi)+1);BufferedWriter bw=new BufferedWriter(new FileWriter(a.txt);for(Object key:map.keySet()bw.append(key+出现了+map.get(key)+次);bw.newLine();bw.flush();bw.close();System.out.println(信息已写入 a.txt);黑马程序员济南中心 编著二、1AppleScript 纯文本查看 复制代码?010203040506070809101112131415161718public class Test03 public static void main(String args)System.out.println(请输入 5 个人的相关信息:姓名,年龄,性别);ArrayList list=new ArrayList();for(int i=0;i=0;i-)if(list.get(i).getAge()60)System.out.println(list.get(i)+已删除);list.remove(i);黑马程序员济南中心 编著192021222324 for(int i=0;i list.size();i+)System.out.println(list.get(i)+-);二、2AppleScript 纯文本查看 复制代码?010203040506070809101112public class Test04 public static void main(String args)throws IOException Map map=new HashMap();System.out.println(请输入编号及内容);for(int i=0;i 0)synchronized(this)System.out.println(Thread.currentThread().getName();i-;三、2AppleScript 纯文本查看 复制代码?010203public class Test06 public static void main(String args)黑马程序员济南中心 编著04050607080910111213141516171819202122232425 People p=new People();Thread t1=new Thread(p);Thread t2=new Thread(p);Thread t3=new Thread(p);Thread t4=new Thread(p);Thread t5=new Thread(p);t1.setName(t1);t2.setName(t2);t3.setName(t3);t4.setName(t4);t5.setName(t5);t1.start();t2.start();t3.start();t4.start();t5.start();while(!p.flag);for(Entry entry:p.map.entrySet()System.out.println(entry.getKey()+抢了 +entry.getValue()+元);黑马程序员济南中心 编著26272829303132333435363738394041424344454647 class People extends Thread Map map=new HashMap();boolean flag=false;private int num=10;public void run()while(true)synchronized(this)if(num 0)try Thread.sleep(100);catch(InterruptedException e)e.printStackTrace();Random r=new Random();int money=r.nextInt(7);String name=Thread.currentThread().getName();if(!map.containsKey(name)map.put(name,money);黑马程序员济南中心 编著48495051525354555657585960 else if(map.containsKey(name)map.put(name,map.get(name)+money);num-;System.out.println(num+name+money);else flag=true;break;四、sql 命令黑马程序员济南中心 编著 java 代码:AppleScript 纯文本查看 复制代码?01020304050607public class Test07 public static void main(String args)throws ClassNotFoundException,SQLException Class.forName(com.mysql.jdbc.Driver);String url=jdbc:mysql:/localhost:3306/itheima;String username=root;String password=123;黑马程序员济南中心 编著08091011121314151617181920212223242526272829 Connection con=DriverManager.getConnection(url,username,password);/插入一条数据 Statement stat=con.createStatement();/int row=/stat.executeUpdate(INSERT INTO stu(sname,age,java,c,oc,chinese)VALUES(meng,26,80,8,100,20);/System.out.println(row);/a 筛选结果-输出年龄在 20 岁以上的学员所有学科的总分-ResultSet rst=stat.executeQuery(SELECT*FROM stu WHERE age 20);while(rst.next()int sum=0;String name=rst.getString(sname);sum=rst.getInt(java)+rst.getInt(c)+rst.getInt(oc)+rst.getInt(chinese);System.out.println(name+的总分是:+sum);rst.close();/b 修改数据-/将 andi 的 java 成绩改为 100,C 语言成绩改为 60-黑马程序员济南中心 编著30313233343536373839404142434445464748495051-int a=stat .executeUpdate(UPDATE stu SET java=100,c=60 WHERE sname=andi);/c./在控制台上打印出 Java 学科和 c 学科都是 60 分以下的学员姓名-ResultSet rst2=stat .executeQuery(SELECT sname FROM stu WHERE java 60 AND c 60);while(rst2.next()System.out.println(Java 学科和 c 学科都是 60 分以下的学员姓名 +rst2.getString(sname);rst2.close();/d./输出 java,c,oc,chinese 这四科的平均分-/ResultSet rst3=stat /.executeQuery(SELECT AVG(java),AVG(c),AVG(oc),AVG(chinese)FROM stu);/while(rst3.next()/System.out.println(java 平均分:+rst3.getInt(1)+nc 平均分:/+rst3.getInt(2)+noc 平均分:+rst3.getInt(3)黑马程序员济南中心 编著52535455 /+nchinese 平均分:+rst3.getInt(4);/rst3.close();stat.close();con.close();
展开阅读全文