篇幅不定,更新时间不定~~~~

1、基本数值数据类型:Java与C++不同,没有long long类型,而多了bype类型。而且Java的long等于C++的long long;

下表来自博主C加加的博客:

C++与Java基本数据类型及所占用内存空间比较
----------------C++------------------------Java----------
(01)01)bool----------------1 byte-----01)boolean--1 byte
(02)02)char----------------1 byte-----02)char-----2 bytes
(03)---signed char---------1 byte     03)byte-----1 byte
(04)---unsigned char-------1 byte
(05)03)wchar_t-------------2 bytes  //char的扩展,一般为16位或32位
(06)04)short---------------2 bytes----04)short----2 bytes
(07)---unsigned short------2 bytes
(08)05)int-----------------4 bytes----05)int------4 bytes
(09)---unsigned int--------4 bytes
(10)06)long----------------4 bytes----06)long-----8 bytes
(11)---unsigned long-------4 bytes
(12)07)long long-----------8 bytes
(13)---unsigned long long--8 bytes
(14)08)float---------------4 bytes----07)float----4 bytes
(15)09)double--------------8 bytes----08)double---8 bytes
(16)10)long double--------12 bytes
----------------------------------------------------------

2、不同于C++,Java的输入需要自己定义,可以定义从控制台输入和从文件中读取
如:java.util.Scanner input = new java.util.Scanner (System.in/file) 前者从控制台,后者从文件

3、强制类型转化
1)、保留小数点后n(以2为例)位: (int)(a*100)/100.0;
2)、char与数值类型:整数转化为char时,取后16位(这说的是Java),如:char ch = (char)OXAB0041;
     浮点数转化为char,先转为int,再转为char,如 char ch = (char)65.25; 
     上述ch结果均为'A';

4、next()和nextline()方法的区别:前者读取以空白字符结束的字符串(' ','\t','\n'等),后者以按下回车键为结束符(即'\n');

5、随机函数
(1)Math.random()
1)、产生两位随机整数: int n = (int)(Math.random()*90+10) //Math.random返回区间[0.0,1.0)中的任意一个数
=> a + Math.random()*b 返回[a,a+b) 内的随机数;
2)、生成随机小写字母: char ch = (char)('a' + Math.random()*('z'-'a'+1));
=> (char)(ch1 + Math.random()*(ch2 - ch1 + 1))  生成ch1到ch2(包括首尾)之间的随机字符;
(2)java.util.Random



6、输入输出重定向
当数据过多时,可以将这些数据用空格隔开,保存在名为input.txt的文本文件中,然后使用指令: 
java x < input.txt; //x是文件的名称,即x.java.
同理,输出重定向将输出给文件output.txt,指令为:
java ClassName > output.txt;
这两条指令也合并在一起使用,如:
java SentineValue < input.txt > output.txt

7、从大到小添加数字没有比从小到大添加数字得到的数值精确,即是在大数之前先增加小数可减少误差;
代码1:先增加大数
import javax.swing.*;
import java.util.*;
import java.awt.Graphics;
public class Main{
	public static void main(String [] args){
		 double sum = 0;
		double a = 1.0;
		for(int i = 0;i<100;i++){
			sum += a;
			a -= 0.01;
		}
		System.out.println(sum);
	}
}
运行结果:50.49999999999995

代码2:先增加小数
import javax.swing.*;
import java.util.*;
import java.awt.Graphics;
public class Main{
	public static void main(String [] args){
		 double sum = 0;
		double a = 0.01;
		for(int i = 0;i<100;i++){
			sum += a;
			a += 0.01;
		}
		System.out.println(sum);
	}
}
运行结果:50.50000000000003

显然代码2更为精确;

8、简便的是10->16进制转化函数
public static String toHex(int dec){
		String hex = "";
		while(dec!=0){
			int t = dec % 16;
			hex += toHexChar(t);
			dec /= 16;
		}
		return hex;
	}
	public static char toHexChar(int n)
	{if(n<10)
		return (char)(n+'0');
	else return (char)(n-10+'A');
		}
	}

10、Math类的五个取整函数

static double ceil(doublea):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。

static double floor(doublea):地板函数,返回小于等于a的最大整数(但是以浮点数形式存储)。

static double rint(doublea):四舍五入函数,返回与a的值最相近的整数(但是以浮点数形式存储)。当a为xx.5时,向绝对值小的方向靠拢。   

static long round(doublea):四舍五入函数,返回与a的值最相近的长整型数。(long)(Math.floor(x+0.5));

static int round(floata):四舍五入函数,返回与a的值最相近的整型数。(int)(Math.floor(x+0.5));


11、随意打乱数组元素(洗牌) && for-each循环(即不用下标变量直接遍历整个数组):
import javax.swing.*;
import java.util.*;
import java.awt.Graphics;
public class Main{
	public static void main(String [] args){
		int []a = {1,2,3,4,5,6,7,8,9,10};	
		for(int i=0;i<a.length;i++){
			int index = (int)(Math.random()*a.length);
			int t = a[i];
			a[i] = a[index];
			a[index] = t;
		}
		for(int u:a)
		System.out.println(u);
	}
}
	

12、二分查找法:
public static int BinarySearch(int []a,int key){
	int low =0;
	int high = a.length - 1;
	while(low <= high){
		int mid = (low+high)/2;
		if( a[mid] < key) low = mid + 1;
		else if(a[mid] == key) return mid;
		else high = mid -1;
 	}
	return -low - 1;
}

13、插入排序法
public static void insertionsort(double []a){
		for(int i=1;i<a.length;i++){
		double c = a[i];
		int k;
		for(k=i-1;k>=0&&a[k]>c;k--){
			a[k+1] = a[k];
		}
		a[k+1] = c;
		}
	}

14、Arrays类:1、fill方法:替换整个数组或者部分数组的元素;
      2、sort方法:排序
      3、binarySearch:二分查找
      4、equals:判断数组是否相等






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值