分支, 循环, 数据类型
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综合题目的更多相关文章

  1. JAVA 综合面试题

    JAVA 综合面试题 2007-08-12 目录 TOC \o "1-3" \h \z \u Java面试题整理 9 Java面向对象 9 1. super()与this()的区别 ...

  2. (转)喜马拉雅2018 Java面试题目

    背景:将网上的题目整理下. java基础 1:hashTable hashMap ConcurrentHashMap 的区别.数据结构.线程安全 2:equals和==区别, 重写equals一定要重 ...

  3. 2020阿里Java面试题目大汇总,看看你离阿里还有多远,附答案!

    前言 首先说一下情况,我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿 ...

  4. java经典题目

    /***********Ryear.java begin********************/ import java.util.Scanner;public class Ryear { /** ...

  5. java基础题目总结

    有些基础题目由于工作中用的比较少但却又是不可少的,这样回答起来就会反应慢,不确定,不准确,特此开了文章记录遇到的不确定或者回答比较拗口的问题. 1.servlet是单例的吗,是安全的吗,是多线程吗 s ...

  6. Java解决题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子。。。

    题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子,假如兔子都不死,问M个月时兔子的数量,M为键盘读入的正整数.(请用Java语言作答) 样例输入: 3 样 ...

  7. 2012年 蓝桥杯预赛 java 本科 题目

    2012年 蓝桥杯预赛 java 本科 考生须知: l  考试时间为4小时. l  参赛选手切勿修改机器自动生成的[考生文件夹]的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答 ...

  8. JAVA 综合布局应用

    //布局综合应用 import java.awt.*; import javax.swing.*; public class Jiemian4 extends JFrame{ JPanel mb1,m ...

  9. 亚信联创--java面试题目总结

    这几天投简历,只有两家的HR表示感兴趣.易思卓越和亚信联创,不管怎样如果能有机会面试都一定尽力表现,所以找了找网上的面经,这里先把题目总结一下. 职位要求如下: ------------------- ...

随机推荐

  1. Access denied for user 'root'@'localhost' (using password: NO)错误的解决方案

    在windows下使用PHP连接MYSQL数据库,确定MYSQL的服务已经启动了,而且Workbench也是可以连上去的,但是始终网页测试都提示Access Denied. 最终解决办法: set p ...

  2. Java IO学习笔记五

    管道流 管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入 ...

  3. 关于MATLAB收集人工鼠标移动轨迹的坐标

    首先需要设计一个用户图形界面的函数,这个图形界面被用于在其上面绘制轨迹并记录当时的坐标. 该回响函数应包含:鼠标按下时,鼠标移动时,和鼠标释放时的反应命令.当然网上有有相关的开源 程序,但是有缺陷(该 ...

  4. CoolBlog开发笔记第4课:数据库模型设计

    教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 1.3 CoolBlog开发笔记第3课:创建Django应用 前言 我新书<Py ...

  5. 30岁程序员的选择,一线OR二线?

    作为一个30刚出头的IT行业从业者,先介绍下我自己的情况.虽然不具有代表性,但是也可以作为一个参考.本人08年本科毕业于一所还算不错的211大学计算机专业(04年去的时候综合排名38,毕业走时排名45 ...

  6. ecshop的aes加密(封装)

    从一家做shopex,ecstore的公司到一家做b2b的ecshop的公司...来了就要实战,其他的不说了,先来了解什么是php的aes加密吧? aes(高级加密标准),AES的区块长度固定为128 ...

  7. js数值使用及数组转json,转化后的json传入后台解析

    var storeArray=new Array(); $("input[name='storeid']").each(function(i){ var curStoreObj = ...

  8. vue 基础-->进阶 教程(1): 基础(数据绑定)

    第一章 建议学习时间4小时  课程共3章 前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零 ...

  9. Spring MVC使用样例

    Spring MVC使用样例 步骤1:添加Spring的相关依赖 1 <dependency> 2 3 <groupId>com.alibaba.external</gr ...

  10. 【LeetCode】49. Group Anagrams

    题目: Given an array of strings, group anagrams together. For example, given: ["eat", " ...