Java综合题目
分支, 循环, 数据类型
1, 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
2, 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
3, 题目:求1!+2!+3!+...+20!的和(5!表示5的阶乘, 即5*4*3*2*1)
4, 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
5, 题目:先写一个程序, 随机生成一个3*3的矩阵数字(1-9数字全部用到不能重复), 然后求这个3*3矩阵对角线元素之和
6, 回忆包装类对应的基础数据类型和基本方法的使用
将字符串转成数字(Long, Integer, Short, Byte, Double, Float)
字符串转换成字符数组, 并分别输出
7, 查API文档, 找出将2进制, 8进制, 16进制形式的字符串转换成的Integer数字的方法, 在控制台上打印出来
8, 取一个随便的字符串中字母出现的次数, 打印出来
9, 有一个字符串形式的任意日期是"yyyy-MM-dd"的格式, 计算这个日期到1949年10月1日差了多少天
面向对象+容器+流
1, 从data.txt文件中读取数据到程序中, 实现一个联动功能, 即输入主食会显示"1---馒头 2---煎饼 3---米饭", 再次输入会显示下一级菜单
data.txt文件中每一行都有被 "," 分割的三个值, 第一个值代表这项食物的编号(对于整个数据来说是唯一的), 第三个值表示所属的上一级食物分类
2, 写一个程序统计一个项目中src下的所有 .java 文件的代码行数(用流的知识)
读到流
去空格
查看开始结尾
3, 写一个带线程同步的程序模拟5个人在火车站买票, 总共有4张票
//1, 题目:有1、2、3、4个数字,能组成多少个互7;不相同且无重复数字的三位数?
//都是多少?
public static void t1(){
int num=0; for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
for(int k=1;k<=4;k++){
if(i!=j&&i!=k&&j!=k){
num+=1;
System.out.println(i*100+j*10+k);
}
}
}
}
System.out.println("共有"+num+"种方案");
}
public static void t2(){
//2, 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
double s=2;
double x=1;
double temp;
double sum=0;
for(int i=0;i<20;i++){
sum=s/x+sum;
temp=x;
x=s;
s=temp+s;
}
System.out.println(sum);
}
public static long jiecheng(long l){
//求阶乘
long k=1;
for(int i=1;i<=l;i++){
k=k*i;
}
return k;
}
public static void t3(){
//求1!+2!+3!+...+20!的和(5!表示5的阶乘, 即5*4*3*2*1)
long sum=0;
for(int i=1;i<=20;i++){
sum=sum+jiecheng(i);
}
System.out.println(sum);
}
public static void t4(){
//一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
String[] ss=s.split("");
if(ss[0].equals(ss[4])&&ss[1].equals(ss[3])){
System.out.println("是回文数");
}else{
System.out.println("不是回文数");
}
sc.close();
}
public static void t5(){
//5, 题目:先写一个程序, 随机生成一个3*3的矩阵数字(1-9数字全部用到不能重复), 然后求这个3*3矩阵对角线元素之和
List l1=new ArrayList();
List l2=new ArrayList();
List l3=new ArrayList();
Random r=new Random();
List list=new ArrayList();
for(int i=1;i<=9;i++){
list.add(i);
}
for(int j=0;j<3;j++){
l1.add(list.remove(r.nextInt(9-j)));
}
for(int j=0;j<3;j++){
l2.add(list.remove(r.nextInt(6-j)));
}
for(int j=0;j<3;j++){
l3.add(list.remove(r.nextInt(3-j)));
}
System.out.println(l1);
System.out.println(l2);
System.out.println(l3);
System.out.println((int)l1.get(0)+(int)l2.get(1)+(int)l3.get(2)+(int)l1.get(2)+(int)l3.get(0));
}
public static void t6(){
//将字符串转成数字(Long, Integer, Short, Byte, Double, Float)
//字符串转换成字符数组, 并分别输出
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串数字");
String s=sc.nextLine();
System.out.println("Integer "+Integer.parseInt(s));
System.out.println("Long "+Long.parseLong(s));
System.out.println("Short "+Short.parseShort(s));
System.out.println("Byte "+Byte.parseByte(s));
System.out.println("Double "+Double.parseDouble(s));
System.out.println("Float "+Float.parseFloat(s));
System.out.println(Arrays.toString(s.toCharArray()));
}
public static void t7(){
//查API文档, 找出将2进制, 8进制, 16进制形式的字符串转换成的Integer数字的方法, 在控制台上打印出来
//十六进制转成十进制
System.out.println(Integer.parseInt("FFFF",16));
//八进制转成十进制
System.out.println(Integer.parseInt("777",8));
//二进制转成十进制
System.out.println(Integer.parseInt("110",2));
}
public static void t8(){
//取一个随便的字符串中字母出现的次数, 打印出来
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串");
String s=sc.nextLine();
Map<String, Integer> map = new HashMap<String, Integer>();
String[] ss = s.split(""); for (String _s : ss) {
map.put(_s, map.get(_s) == null ? 1 : map.get(_s) + 1);
}
System.out.println(map);
}
public static void t9(){
//有一个字符串形式的任意日期是"yyyy-MM-dd"的格式, 计算这个日期到1949年10月1日差了多少天
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date smdate = null;
Date bdate = null;
try {
smdate = sdf.parse("1949-10-1");
bdate = sdf.parse("1949-09-1");
smdate=sdf.parse(sdf.format(smdate));
bdate=sdf.parse(sdf.format(bdate));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24); System.out.println(String.valueOf(between_days));
}
从data.txt文件中读取数据到程序中, 实现一个联动功能, 即输入主食会显示"1---馒头 2---煎饼 3---米饭", 再次输入会显示下一级菜单
data.txt文件中每一行都有被 "," 分割的三个值, 第一个值代表这项食物的编号(对于整个数据来说是唯一的), 第三个值表示所属的上一级食物分类
package com.hanqi.maya.test; public class Food {
private String id;
private String name;
private String parentid; public Food(String id, String name, String parentid) {
super();
this.id = id;
this.name = name;
this.parentid = parentid;
} public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getParentid() {
return parentid;
} public void setParentid(String parentid) {
this.parentid = parentid;
} @Override
public String toString() {
return "Food [id=" + id + ", name=" + name + ", parentid=" + parentid + "]";
} }
package com.hanqi.maya.test; import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; public class Test10 {
public static void main(String[] args) {
File file = new File("E:\\Java\\0803test\\data.txt");
List<Food> list = new ArrayList<Food>();
Reader reader = null;
try {
reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
String s = null;
while((s = br.readLine())!=null) {
String[] ss = s.split(",");
if(ss.length==3) {
Food food = new Food(ss[0],ss[1],ss[2]);
list.add(food);
}
}
br.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
for(Food ff : list) {
if("0".equals(ff.getParentid())) {
System.out.println(ff.getId()+"---"+ff.getName());
}
} Scanner scanner = new Scanner(System.in);
boolean flag = true;
String in_str = scanner.nextLine();
while(flag) {
if("exit".equals(in_str)) {
flag = false;
} else {
printFood(list, in_str);
in_str = scanner.nextLine();
}
}
scanner.close(); } public static void printFood(List<Food> list, String pid) {
for(Food ff : list) {
if(pid.equals(ff.getParentid())) {
System.out.println(ff.getId()+"---"+ff.getName());
}
}
} }
写一个程序统计一个项目中src下的所有 .java 文件的代码行数(用流的知识)
package practise; import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader; public class Test11 { private static int daima;
private static int kongbai;
private static int zhushi; public static void main(String[] args) {
// F:\0603\0715\test\src /*
* 统计代码行数 代码行数 注释行数 空白行数
*/ File file = new File("F:\\0603\\0715\\test\\src"); if (file.exists()) {
countor(file);
System.out.println("代码行数: " + daima);
System.out.println("空白行数: " + kongbai);
System.out.println("注释行数: " + zhushi);
} else {
System.out.println("找不到路径 !");
} } public static void countor(File file) { File[] f_list = file.listFiles();//获取文件夹下文件和子文件夹 for (File f : f_list) {
if (f.isDirectory()) {
countor(f);
} else {
try {
boolean flag = false;
Reader reader = new FileReader(f);//读取文件
BufferedReader br = new BufferedReader(reader);
String s = null;
while ((s = br.readLine()) != null) {
System.out.println(s);
if (s.trim().startsWith("/*")) {
flag = true;
} else if (s.trim().endsWith("*/")) {
flag = false;
} else if (flag) {
zhushi++;
} else if (s.trim().startsWith("//")) {
zhushi++;
} else if (s.trim().length() != 0
&& !(s.trim().startsWith("/*")
&& s.trim().startsWith("//"))) {
daima++;
} else if (!flag&&s.trim().length() == 0) {
kongbai++;
}
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}
} }
写一个带线程同步的程序模拟5个人在火车站买票, 总共有4张票
package practise; import model.Station; public class Test12 { public static void main(String[] args) { MyThread mt = new MyThread(); Thread t1 = new Thread(mt);
t1.setName("甲");
Thread t2 = new Thread(mt);
t2.setName("乙");
Thread t3 = new Thread(mt);
t3.setName("丙");
Thread t4 = new Thread(mt);
t4.setName("丁");
Thread t5 = new Thread(mt);
t5.setName("二"); t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
} } class MyThread implements Runnable {
public Station station = new Station(); @Override
public void run() {
station.sale(Thread.currentThread().getName());
}
}
package model; public class Station {
public int tickets = 4; public synchronized void sale(String name) {
if (tickets > 0) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(name + "买走了第" + tickets-- + "张票");
} else {
System.out.println("票没了");
}
}
}
Java综合题目的更多相关文章
- JAVA 综合面试题
JAVA 综合面试题 2007-08-12 目录 TOC \o "1-3" \h \z \u Java面试题整理 9 Java面向对象 9 1. super()与this()的区别 ...
- (转)喜马拉雅2018 Java面试题目
背景:将网上的题目整理下. java基础 1:hashTable hashMap ConcurrentHashMap 的区别.数据结构.线程安全 2:equals和==区别, 重写equals一定要重 ...
- 2020阿里Java面试题目大汇总,看看你离阿里还有多远,附答案!
前言 首先说一下情况,我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿 ...
- java经典题目
/***********Ryear.java begin********************/ import java.util.Scanner;public class Ryear { /** ...
- java基础题目总结
有些基础题目由于工作中用的比较少但却又是不可少的,这样回答起来就会反应慢,不确定,不准确,特此开了文章记录遇到的不确定或者回答比较拗口的问题. 1.servlet是单例的吗,是安全的吗,是多线程吗 s ...
- Java解决题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子。。。
题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子,假如兔子都不死,问M个月时兔子的数量,M为键盘读入的正整数.(请用Java语言作答) 样例输入: 3 样 ...
- 2012年 蓝桥杯预赛 java 本科 题目
2012年 蓝桥杯预赛 java 本科 考生须知: l 考试时间为4小时. l 参赛选手切勿修改机器自动生成的[考生文件夹]的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答 ...
- JAVA 综合布局应用
//布局综合应用 import java.awt.*; import javax.swing.*; public class Jiemian4 extends JFrame{ JPanel mb1,m ...
- 亚信联创--java面试题目总结
这几天投简历,只有两家的HR表示感兴趣.易思卓越和亚信联创,不管怎样如果能有机会面试都一定尽力表现,所以找了找网上的面经,这里先把题目总结一下. 职位要求如下: ------------------- ...
随机推荐
- 一些java方面面试题,没事做做看看(带答案)
1. Switch能否用string做参数? a.在?Java? <http://lib.csdn.net/base/java>7 之前, switch 只能支持byte,short,ch ...
- java.toString() ,(String),String.valueOf的区别
在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 常用的方法有Object#toString(),(String)要转换的对象,S ...
- bc计算A股上市新股依次涨停股价
几年的股市可谓惨不忍睹,不提也罢.唯有打新中签的时候,心里稍微有那么一点点的补偿,于是内心就YY可以30板吗,可以40板吗.于是就写了个连板的bc程序,每次中签的时候就运行一下,然后尽情的YY,然而每 ...
- 如何查询oracle中的关键字
如何查询oracle中的关键字,执行: select * from v$reserved_words
- php session_start()报错 解决办法
1.php.ini中的output_buffering=off 改成output_buffering=4096 2.php.ini中的session.save_path是否设置好了 3.php.ini ...
- (cljs/run-at (JSVM. :browser) "命名空间就这么简单")
前言 一个cljs文件定义一个命名空间,通过命名空间可以有效组织代码,这是构建大型系统必备的基础设施.本篇我们就深入理解cljs中的命名空间吧! 好习惯从"头"开始 每个cljs ...
- java excel导出
下面是jsp代码: <li class="btns"><input id="btnExport" class="btn btn-pr ...
- 从.src.rpm包中提取出完整的源码的方法
1 什么是完整的源码 就是说,最初始的源码加上打了所有的patch后的源码,即最新的源码. 2 过程 2.1 从.src.rpm中提取完整的rpm工程文件 2.1.1 rpm to cpio rpm2 ...
- Java读取数据源相关信息
一.采用读取数据源配置文件的方式 package com.ofsp.utils; import java.io.IOException; import java.io.InputStream; imp ...
- hightcharts在移动端运用 FastClick后苹果上legend点击失效的解决办法
问题:在移动端做图表运用了hightcharts,引用了fastclick来消除300ms的延迟,但是发现苹果(安卓正常)上hightcharts的legend点击不起作用了,必须长按才行. 使用fa ...