JAVA入门级知识储备(一)

1.Scanner的欢乐接收

import java.util.Scanner;

public class first {
public static void main(String[] args) {
//扫描对象,用来扫描系统的输入
Scanner input=new Scanner(System.in);//扫描仪的名称自定义,一般好记为input;
/*各种类型如何输入
* char a=input.next().charAt(0); //获得用户输入字符串中的第一个字符
* String a=input.next();//next() 不读入空格 nextLine()相反
* int a=input.nextInt();
* double a=input.nextDouble();
* */
System.out.println(a);
}
}

2.while循环里遇到浮点型陷入懵圈

import java.util.Scanner;

public class fist {
public static void main(String[] args) {
double sum=;
double item=;
while(item!=){
sum+=item;
item-=0.1;
System.out.println(item);
}
System.out.println(sum);
}
}

!!!循环里不要使用浮点型来比较值是否相等;

3.活学现用,编一个计算器玩玩吧

package mycal;

import java.util.Scanner;

import javax.sql.rowset.CachedRowSet;

public class counter {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String op="";
String ch=null;
double result=,num1,num2;
do{
System.out.println("请输入两个操作数");
num1=input.nextDouble();
num2=input.nextDouble();
op=input.next();
switch(op)
{
case "+":
result = num1+num2;
break;
case "-":
result=num1-num2;
break;
case "*":
result=num1*num2;
break;
case "/":
if(num2==)
{
System.out.println("输入不合理!");
result=;
}
else
{
result=num1/num2;
}
break;
case "%":
result=num1%num2;
break;
default:
System.out.println("输入的运算符不合理,运算失败!");
result=;
break;
}
System.out.println(num1 +op+num2+"="+result);
System.out.println("输入Y或者N"); ch=input.next();
}while("Y".equalsIgnoreCase(ch));
System.out.println("运算结束!");
}
}

4.走进数组的世界

* 关于一维数组的声明,声明后要在堆内存中分配空间 。基本类型处理时,在栈内存中直接分配了空间(不需要手动分配) 。

int[] nums=new int [5] //在堆内存中分配了5个int类型大小的空间 ,数组名即为新分配内存空间的首地址

* 关于一维数组的初始化,声明并初始化数组是不需要指明数组的大小

错误方式例如 int a[6]={0,1,2,3,4,5},int[6] a={0,1,2,3,4,5};

正确方式为 int a[]={0,1,2,3,4,5}//中括号在前在后都行

例题1.0 简单的数组题

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//输入n名同学的成绩,求出平均分,以及总和并打印;
int n=input.nextInt();
double [] students=new double[];
double sum=,ave=;
for(int i=;i<students.length;i++)
{
students[i]=input.nextDouble();
sum+=students[i];
}
ave=sum/n;
System.out.println(sum+" "+ave);
}
}

数组题目 2.0(引入随机数的生成!)

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//随机生成n个数,打印最大值和最小值;
final int N=;//常量N
int n=input.nextInt();
int nums[]=new int[N];
for (int i = ; i < n; i++) {
nums[i]=(int)(Math.random()*)%;//0-1000之间的数
System.out.print(nums[i]+" ");
}
System.out.print("\n");
int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
for (int i = ; i < n; i++) {
if(nums[i]>max)
{
max=nums[i];
}
if(nums[i]<min)
{
min=nums[i];
}
}
System.out.print("输出最大值"+max+"\n"+"输出最小值"+min);
}
}

三种随机数生成的方式

第一种:new Random()

通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。

【PS:我们可以通过新建一个Random的对象来产生随机数,他可以产生随机整数、float、double、long型随机数】

第二种:Math.random()

 通过Math.random()返回一个0到1之间的double值。

【PS:这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的倍数来得到想要的效果,比如说乘以10,他就是个10以内的随机 数】

第三种:currentTimeMillis() 

    通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。

【PS:这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿它作为一个随机数,拿它对一些数取 模,就可以得到我们想要的一些范围内随机数】

数组3.0 排序大法!

round1 冒泡排序法

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
final int N=;
int [] nums=new int [N];
int n,temp;
Scanner input=new Scanner(System.in);
n=input.nextInt();
System.out.println("排序之前的数组!");
for(int i=;i<=n;i++)
{
nums[i]=(int)(Math.random()*)%;//0-1000随机数;
System.out.print(nums[i]+" ");
}
System.out.println();
for(int i=;i<=n-;i++)
{
for(int j=;j<=n-i;j++)
{
if(nums[j]<nums[j+])//升序的话大于号
{
temp=nums[j];
nums[j]=nums[j+];
nums[j+]=temp;
}
}
}
System.out.println("请打印出排序后的数组!");
for(int i=;i<=n;i++)
{
System.out.print(nums[i]+" ");
}
}
}

round2 选择排序法

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
final int N=;
int [] nums=new int [N];
int n,temp=;
Scanner input=new Scanner(System.in);
n=input.nextInt();
System.out.println("排序之前的数组!");
for(int i=;i<=n;i++)
{
nums[i]=(int)(Math.random()*)%;//0-1000;
System.out.print(nums[i]+" ");
}
System.out.println();
for(int i=;i<=n-;i++)
{
for(int j=i+;j<=n;j++)
{
if(nums[i]<nums[j])//升序则为大于号
{
temp=nums[j];
nums[j]=nums[i];
nums[i]=temp;
}
}
}
System.out.println("请打印出排序后的数组!");
for(int i=;i<=n;i++)
{
System.out.print(nums[i]+" ");
}
}
}

round3 sort 大法

import java.util.Arrays;

public class Main{
public static void main(String[] args) {
final int N=;
int [] nums=new int [N];;
System.out.println("排序之前的数组!");
for(int i=;i<N;i++)
{
nums[i]=(int)(Math.random()*)%;//0-1000;
System.out.print(nums[i]+" ");
}
System.out.println();
Arrays.sort(nums);
System.out.println("请打印出排序后的数组!");
for(int i=;i<N;i++)
{
System.out.print(nums[i]+" ");
}
}
}

数组4.0 二分查找

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int searchnum;
boolean isfind=false;
int []nums={,,,,};
searchnum=input.nextInt();
int left=,right=nums.length-,mid=;
while(left<=right)
{
mid=(left+right)/;
if(nums[mid]>searchnum) right=mid-;
else if(nums[mid]<searchnum) left=mid+;
else
{
System.out.print("找到了!下标为"+mid);
isfind=true;
break;
}
}
if(isfind==false) System.out.print("很遗憾,没有找到!");
}
}

JAVA自学笔记(1)的更多相关文章

  1. JAVA自学笔记09

    JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法 ...

  2. JAVA自学笔记05

    JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...

  3. JAVA自学笔记06

    JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...

  4. JAVA自学笔记04

    JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...

  5. JAVA自学笔记07

    JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...

  6. JAVA自学笔记10

    JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...

  7. JAVA自学笔记13

    JAVA自学笔记13 1.StringBuffer类 1)线程安全的可变字符序列 线程安全(即同步) 2)StringBuffer与String的区别:一个可变一个不可变 3)构造方法: ①publi ...

  8. JAVA自学笔记11

    JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...

  9. JAVA自学笔记14

    JAVA自学笔记14 1.正则表达式 1)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.其实就是一种规则.有自己的特殊应用 2)组成规则: 规则字符在java.util.rege ...

  10. JAVA自学笔记12

    JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...

随机推荐

  1. 从零开始学习docker之在docker中搭建redis(集群)

    docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...

  2. mybatis添加信息自动生成主键

    一.使用Oracle数据库 举例:添加员工的时候自动生成主键 1.在dao接口中声明方法 2.在mapper中实现该方法 需要先在数据表中创建序列 3.测试 注意:在调用过save方法之后,emp对象 ...

  3. Nacos系列(一):Nacos环境安装及Hello World示例

    现在微服务架构越来越火,微服务架构中比较重要的一项就是配置中心, Nacos是阿里巴巴的一个开源项目,它的其中一个功能就是可以作为配置中心,实现配置的动态变更.历史版本对比.配置回滚等功能. 更多的描 ...

  4. [hdu5402 Travelling Salesman Problem]YY

    题意:给一个n*m的矩形,每个格子有一个非负数,求一条从(1,1)到(n,m)的路径(不能经过重复的格子),使得经过的数的和最大,输出具体的方案 思路:对于row为奇数的情况,一行行扫下来即可全部走完 ...

  5. [hdu5399 Too Simple]YY

    题意:m个{1,2...n}→{1,2...,n}的函数,有些已知有些未知,求对任意i∈{1,2,...,n},f1(f2(...(fm(i)))=i的方案总数,为了方便简记为F(i) 思路:如果存在 ...

  6. WordPress安装:零基础入门教程

    WordPress安装:零基础入门教程 1主机空间要求要运行 WordPress,主机空间需满足以下条件.不过现在网络上的空间基本都可以,而且还让你随意定制Php和Mysql版本,至于空间和数据库大小 ...

  7. android 百度地图v3.2.0获取实际地址

    百度地图升级到v3.2.0后,api发生挺大的变化的,但是下载的Demo却不是最新版本的. 在v3.2.0之前获取详细地址只要:option.setIsNeedAddress(true); 但是升级后 ...

  8. javaEE ->DBUtils&连接池

    第1章    DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils. DBUtils就是J ...

  9. python--字典基本操作

    字典 格式  key  :value # string list dict#  1.取数据方便# 2.速度快, 定义一个空字典: d = dict() 或者 d = { } infos  =  {'n ...

  10. mybatis开发,你用 xml 还是注解?我 pick ...

    最近在看公司项目时发现有的项目mybatis是基于注解开发的,而我个人的习惯是基于xml文件开发. 对于mybatis注解开发的原理理解不够,于是翻阅了部分源码,写下此文.主要介绍了mybatis开发 ...