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表示感兴趣.易思卓越和亚信联创,不管怎样如果能有机会面试都一定尽力表现,所以找了找网上的面经,这里先把题目总结一下. 职位要求如下: ------------------- ...
随机推荐
- Spring mvc 中使用 kaptcha 验证码
生成验证码的方式有很多,个人认为较为灵活方便的是Kaptcha ,他是基于SimpleCaptcha的开源项目.使用Kaptcha 生成验证码十分简单并且参数可以进行自定义.只需添加jar包配置下就可 ...
- EF架构~Migration数据迁移的执行顺序
回到目录 对于单个分支项目来说,只要你生成一个migration的版本,就会有一个时间戳文件的对应,而在update-database时,会从最小的时间开始,一直执行到当前版本的migration,而 ...
- An abandoned sentiment from past
An abandoned sentiment from past time limit per test 1 second memory limit per test 256 megabytes in ...
- Exameple014实现html中checkbox的全选,反选和全不选(1)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- html路径问题
1.绝对路径 绝对路径是指文件在硬盘上真正存在的路径.例如"bg.jpg"这个图片是存放在硬盘的"E:\book\网页布局代码\第2章"目录下,那么 ...
- linq中日期格式转换或者比较,程序报错说不支持方法的解决办法
public void TestMethod1(){using (var _context = new hotelEntities()){var rq = DateTime.Now.Date;var ...
- (转载)iptables 转发oracle端口
本文出自 “乡丅亻” 博客,请务必保留此出处http://shaowu.blog.51cto.com/627407/514909 项目组同事需要将SQL请求转发到另一台服务器上,于是通过iptable ...
- Unreal Engine 4 Radiant UI 插件入门教程(二)
本篇章前提要求:在UE4上安装了Radiant UI插件.如果没有安装,请找其它教程(或者是笔者的其它的教程,目前正在写). 本教程的目的:探讨如何从网页元素中调用蓝图中的内容: 第一步: 写一个网页 ...
- frames.contentWindow.document InvalidCastException 转换错误异常。
http://bbs.csdn.net/topics/210027068 和 https://bytes.com/topic/c-sharp/answers/248557-threading-pr ...
- POJ 3342 Party at Hali-Bula / HDU 2412 Party at Hali-Bula / UVAlive 3794 Party at Hali-Bula / UVA 1220 Party at Hali-Bula(树型动态规划)
POJ 3342 Party at Hali-Bula / HDU 2412 Party at Hali-Bula / UVAlive 3794 Party at Hali-Bula / UVA 12 ...