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表示感兴趣.易思卓越和亚信联创,不管怎样如果能有机会面试都一定尽力表现,所以找了找网上的面经,这里先把题目总结一下. 职位要求如下: ------------------- ...
随机推荐
- 原生javascript实现网页显示日期时钟效果
刚接触javascript中Date内置对象时,以为这些方法都太简单了,结果要自己实际操作写一个时钟效果还真一时把我难住了,主要有几点大家要注意的.先看实际效果 要实现这样的效果 某年某月某日星期几几 ...
- java中volatile不能保证线程安全
今天打了打代码研究了一下java的volatile关键字到底能不能保证线程安全,经过实践,volatile是不能保证线程安全的,它只是保证了数据的可见性,不会再缓存,每个线程都是从主存中读到的数据,而 ...
- linux 权限字母含义
查看某一文件夹下所有文件夹的权限情况:ls -l分别是:所有者(user)-所有者(user)-其他人(other)r 表示文件可以被读(read)w 表示文件可以被写(write)x 表示文件可以被 ...
- 原始js调用 选中事件
curRadio.get(0).checked=true;//原始js调用 选中事件,curRadio是radio单个对象
- Spring配置注解详解
- ASP.NET MVC Bundling and RequireJS
关于ASP.NET MVC Bundling and RequireJS的取舍问题,最近比较困惑,我希望有一种方式可以结合两者的优点.作为.NET程序员,难道你没有过这方面的困惑吗? 因为我感觉各自都 ...
- jq和js插件的各个文件夹里放置的内容
1. demo文件夹,存放各种实例. 2. dist文件夹,全称是distribution.在某些框架中,因为开发和发布的内容或者代码形式是不一样的(比如利用Grunt压缩等等),这时候就需要一个存放 ...
- 使用docker-compose搭建AspNetCore开发环境
1 使用docker-compose搭建开发环境 我们的目标很简单:使用docker-compose把若干个docker容器组合起来就成了. 首先使用Nginx代理所有的Web程序,这样只需要在主机上 ...
- VB6之切换桌面
Desktop的API,用于切换或者系统桌面环境.扩展起来可以做一个锁屏程序或者多桌面程序. 模块部分: 'desktop.bas 'too much struct and declare unuse ...
- Japanese Learning - Words and Sentences 1
1. いらっしゃいませ.何名さまですか. 二人です. タバコをお吸いになりますか. かしこまりました.少々お待ちください. お勘定お願いします. ご一緒でよろしいでしょうか. 別々にお願いします. 2 ...