01Java经典问题
1.利用Dos输出hello world
建立一个Test.java文件,放在e盘;
public class Test{
public static void main(String[] args){
System.out.println("hello world");
}
}
进入e盘所在目录

注意:javac后面是文件Test.java,而java后面是Test(类名)。
2.Scanner中nextLine()方法和next()方法的区别
import java.util.Scanner; /*
* 中间都不带空格
*/
public class ScannerString {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); System.out.println("请输入字符串(nextLine):");
String strNextLine = input.nextLine(); System.out.println("请输入字符串(next):");
String strNext = input.next(); System.out.println("strNextLine:" + strNextLine);
System.out.println("strNext:" + strNext);
}
}

以上结果都没有问题。
import java.util.Scanner; /*
* nextLine与next都有空格
*/
public class ScannerString {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); System.out.println("请输入字符串(nextLine):");
String strNextLine = input.nextLine(); System.out.println("请输入字符串(next):");
String strNext = input.next(); System.out.println("strNextLine:" + strNextLine);
System.out.println("strNext:" + strNext);
}
}

next()方法读取到空白符就结束
nextLine()读取到回车结束也就是“\r”
import java.util.Scanner; /*
* 第三次:我们将代码中next和nextLine的顺序调整一下,然后再进行测试
*/
public class ScannerString {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入字符串(next):");
String strNext = input.next(); System.out.println("请输入字符串(nextLine):");
String strNextLine = input.nextLine(); System.out.println("strNext:" + strNext);
System.out.println("strNextLine:" + strNextLine);
}
}
修改顺序后遇到的问题就是因为next()读取到空白符前的数据时结束了,然后把回车“\r”留给了nextLine();所以上面nextLine()没有输出,不输出不代表没数据,是接到了空(回车“/r”)的数据。
3.java异或运算
public class XOR {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 15;
int j = 2;
System.out.println("i^j:"+(i^j));
}
}

分析上面程序,i=15转成二进制是1111,j=2转成二进制是0010,根据异或的运算规则得到的是1101,转成十进制就是13.
4.利用异或进行加密
import java.util.Arrays;
import java.util.Scanner; public class Password { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner =new Scanner(System.in);
System.out.println("请输入一个字符串:");
String password = scanner.nextLine();
char[] array = password.toCharArray();
System.out.println(Arrays.toString(array));
for (int i = 0; i < array.length; i++) {
array[i] = (char)(array[i]^20000);
}
System.out.println("加密结果如下:");
System.out.println(Arrays.toString(array));
for (int i = 0; i < array.length; i++) {
array[i] = (char)(array[i]^20000);
}
System.out.println("解密的结果如下:");
System.out.println(Arrays.toString(array));
} }

5.位运算实现乘法
import java.util.Arrays;
import java.util.Scanner; public class Example { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数字:");
long number = scanner.nextLong();
System.out.println("该数字乘以2的运算符为:" + (number << 1));
System.out.println("该数字乘以4的运算符为:" + (number << 2));
System.out.println("该数字乘以8的运算符为:" + (number << 3));
System.out.println("该数字乘以16的运算符为:" + (number << 4));
} }

6.实现两个变量的交换,不借助第三个变量
import java.util.Arrays;
import java.util.Scanner; public class Example { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个变量a的值:");
long a = scanner.nextLong();
System.out.println("请输入一个变量b的值:");
long b = scanner.nextLong();
System.out.println("a=" + a + " " + "b=" + b);
System.out.println("执行变量交换");
a = a ^ b;
b = b ^ a;
a = a ^ b;
System.out.println("a=" + a + " " + "b=" + b);
} }

① 执行前两个赋值语句:“a=a∧b;”和“b=b∧a;”相当于b=b∧(a∧b)。而b∧a∧b等于a∧b∧b(异或满足交换律,结合律)。b∧b的结果为0,因为同一个数与本身相∧,结果必为0。因此b的值等于a∧0,即a,其值为3。
② 再执行第三个赋值语句:a=a∧b。由于a的值等于(a∧b),b的值等于(b∧a∧b),因此,相当于a=a∧b∧b∧a∧b,即a的值等于a∧a∧b∧b∧b,等于b。
a得到b原来的值
7.判断是不是闰年
import java.util.Arrays;
import java.util.Scanner; /**
* 判断一年是不是闰年:能被400整除或者能被4整除但不能被100整除
*/
public class Example { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个年份:");
int year = scanner.nextInt();
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
System.out.println(year + "是闰年");
} else {
System.out.println(year + "不是闰年");
} } }

8.单例模式的应用
class Emepror {
private static Emepror emperor = null;
private Emepror() {
}
public static Emepror getInstance() {
if (emperor == null) {
emperor = new Emepror();
}
return emperor;
}
}
public class Test {
public static void main(String[] args) {
System.out.println("创建皇帝对象1");
Emepror emepror1 = Emepror.getInstance();
System.out.println("创建皇帝对象2");
Emepror emepror2 = Emepror.getInstance();
System.out.println("创建皇帝对象3");
Emepror emepror3 = Emepror.getInstance();
System.out.println(emepror1);
System.out.println(emepror2);
System.out.println(emepror3);
}
}

9.构造方法的应用
class Person {
private String name;
private String gender;
private String age;
public Person() {
// TODO Auto-generated constructor stub
System.out.println("使用无参的构造方法创建对象");
}
public Person(String name, String gender, String age) {
this.name = name;
this.gender = gender;
this.age = age;
System.out.println("使用有参的构造方法创建对象");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class Test2 {
public static void main(String[] args) {
Person person1 = new Person();
Person person2 = new Person("小明", "男", "24");
System.out.println("员工1的信息:");
System.out.println("员工姓名:" + person1.getName());
System.out.println("员工性别:" + person1.getGender());
System.out.println("员工年龄:" + person1.getAge());
System.out.println("员工2的信息:");
System.out.println("员工姓名:" + person2.getName());
System.out.println("员工性别:" + person2.getGender());
System.out.println("员工年龄:" + person2.getAge());
}
}

10.重写equals方法
class Cat {
private String name;
private int age;
private double weight;
public Cat(String name, int age, double weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Cat cat = (Cat) obj;
return name.equals(cat.name) && (age == cat.age) && (weight == cat.weight);
}
@Override
public String toString() {
return "Cat [name=" + name + ", age=" + age + ", weight=" + weight + "]";
}
}
public class TestCat {
public static void main(String[] args) {
// TODO Auto-generated method stub
Cat cat1 = new Cat("java", 12, 1.0);
Cat cat2 = new Cat("python", 12, 8.0);
Cat cat3 = new Cat("java", 12, 1.0);
System.out.println("cat1" + cat1);
System.out.println("cat2" + cat2);
System.out.println("cat3" + cat3);
System.out.println("cat1与cat2相同吗?"+cat1.equals(cat2));
System.out.println("cat1与cat3相同吗?"+cat1.equals(cat3));
}
}

11.将一个int型数组转化成list类型
package exam;
import java.util.*;
public class Main8 {
public static void main(String[] args) {
int[] a= {1,21,3,4};
Integer[] b = new Integer[a.length];
for (int i = 0; i < b.length; i++) {
b[i] = a[i];
}
List<Integer> list= Arrays.asList(b);
System.out.println(list);
System.out.println("最大值为:");
System.out.println(Collections.max(list));
System.out.println("反转");
Collections.reverse(list);
System.out.println(list);
System.out.println("打乱");
Collections.shuffle(list);
System.out.println(list);
System.out.println("排序");
Collections.sort(list);
System.out.println(list);
System.out.println("复制一个集合");
List<Integer> copyList = new ArrayList<>();
copyList.addAll(list);
System.out.println(copyList);
}
}

01Java经典问题的更多相关文章
- 回首经典的SQL Server 2005
原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com SQL Server是我使用时间最长的数据库,算起来已经有10年了.上世纪90年代,微软在软件开发的所有领域高歌猛 ...
- 微软Azure 经典模式下创建内部负载均衡(ILB)
微软Azure 经典模式下创建内部负载均衡(ILB) 使用之前一定要注意自己的Azure的模式,老版的为cloud service模式,新版为ARM模式(资源组模式) 本文适用于cloud servi ...
- Express 教程 01 - 入门教程之经典的Hello World
目录: 前言 一.Express?纳尼?! 二.开始前的准备工作 三.测试安装之经典的Hello World 四.使用express(1)来生成一个应用程序 五.说明 前言: 本篇文章是建立在Node ...
- 赠书:HTML5 Canvas 2d 编程必读的两本经典
赠书:HTML5 Canvas 2d 编程必读的两本经典 这两年多一直在和HTML5 Canvas 打交道,也带领团队开发了世界首款基于HTML5 Canvas 的演示文档工具---AxeSlide( ...
- 虚拟机体验之 VirtualBox 篇 —— 性能强大的经典架构
前两篇体验了 QEMU 和经过 KVM 加速的 QEMU,并体验了第三方虚拟机管理工具 virt-manager,让我们见识了开源社区的强大和开源虚拟机软件的高质量和高性能.这一篇,我来剖析一下 Vi ...
- Atitit MATLAB 图像处理 经典书籍attilax总结
Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...
- 在Windows Server 2012中如何快速开关桌面上经典的“计算机、我的文档”等通用图标
我们都知道,在Windows Server 2012系列的服务器版本中都已经引入了Modern的现代界面作为默认的用户交互界面,同时满足视觉一致化,新版的服务器管理程序也做成了扁平化.因此传统的计算机 ...
- Apworks框架实战(四):使用Visual Studio开发面向经典分层架构的应用程序:从EasyMemo案例开始
时隔一年,继续我们的Apworks框架之旅.在接下来的文章中,我将逐渐向大家介绍如何在Visual Studio中结合Apworks框架,使用ASP.NET Web API和MVC来开发面向经典分层架 ...
- 【十大经典数据挖掘算法】PageRank
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 我特地把PageRank作为[十大经 ...
随机推荐
- Java内存泄漏分析和预防
1. 什么是内存泄漏?有什么危害 书面说法: 内存泄漏:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着. 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个 ...
- 造题inginging
造个题 模拟+sort+贪心 蚕丛及鱼凫,造题何茫然 U74939 小歪被抓走了 代码(不知道对不对哦) #include<bits/stdc++.h> using namespace s ...
- luoguP1502过河题解
日常吐(fei)嘈(hua) 这道题作为最近卡了我3天的dp题(最后还是在题解的帮助下冥思苦想才过掉的题),窝觉得此题肥肠之脑洞,写此博客纪念 题解 过河 先来日常手玩样例: 咦感觉怎么手玩答案都像是 ...
- Firefox63以后 禁止自动更新方式
参考:https://bbs.kafan.cn/thread-2135160-1-1.html 63版以后在prefs.js文件末尾加代码来禁止自动更新的方式失效 新方式: 使用DisableAppU ...
- web开发(四) 一次性验证码的代码实现
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6426072.html>,在此仅供学习参考之用. 其实实现 ...
- 常用 tcpdump 抓包方式
目录 文章目录 目录 tcpdump 指令 关键字 常用指令选项 常规操作示例 过滤主机 过滤端口 过滤网络(网段) 过滤协议 复杂的逻辑表达式过滤条件 参考资料 tcpdump 指令 tcpdump ...
- 文件分发服务器 AWS CloudFront(CDN)使用入门-以S3为例 Lebal:Research
引言 在互联网上随意右击一张图片,都可以发现复制图片地址这个选项,这说明他们都有自己的链接(直链),也就是说我们可以通过一个链接本身来访问图片.代码等文件,而不是打开一个网页再选择复制,这就和下载链接 ...
- python线程池--threadpool
在爬虫时,有时候解析获得了很多图片或视频地址时,如果一个个下载完成再去下载另一个,这样执行效率太慢了,此时就可用到线程池threadpool,使用基本步骤如下: 1.定于任务函数 2.创建线程池,定义 ...
- 禁止layer.msg()回调函数时抖动
layer.msg(resp.msg, { shift: -1, time: 2000 }, function () { window.l ...
- Ubuntu原生源
#deb cdrom:[Ubuntu 18.04.3 LTS _Bionic Beaver_ - Release amd64 (20190805)]/ bionic main restricted # ...