java中所有数值类型所占的字节数与平台无关,每一种数据的取值范围是固定的,int、short、long、byte分别占4,2,8,1个字节,float、double占4,8个字节。
float类型有后缀F,没有后缀的浮点数默认为double类型,double类型的数据后缀可以加上D。
char类型是用UTF-16编码描述的一个代码单元。
变量名以字母开头由数字或者字母组成。大小写敏感,长度没有限制,不能是保留字,不能有空格、“+”等符号。
类常量用static final修饰,final变量表示变量只能赋值一次,一旦赋值就不能改变。
二元操作时数据转换规则:若一个数为double,另一个转换为double;否则,若一个为float,则另外一个转换为float;否则,若一个为long,另一个转换为long;否则,两个数都转换为int。
枚举: enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};
Size s=Size.MEDIUM;
String是不可变字符串,这样可以让编译器共享字符串,可以用equals方法来检查两个字符串的内容是否相同。而“==”检测两个字符串是否放在同一位置。
在java中char采用UTF-16编码的,也就是说,char是代表一个字符单元,占两个字节。
代码单元:UTF-8中是用8个字节表示的,UTF-16中使用16个字节表示的等等。
代码点:对应各种真正字符(char不是真正的字符,是代码单元)的Unicode编码。一个代码点可能对应一对代码单元,如辅助字符。
char ch=str.charAt(2);获取代码单元,但是如果这个代码单元时某个代码点的一部分(它和另外一个代码单元构成一个代码点,如辅助字符),那么ch任然显示的是整个代码点。所以不建议使用char类型。
codePointAt获得代码点,可以用如下方式遍历代码点:
int cp = aString.codePointAt(index);
if (Charater.isSupplementaryCodePoint(cp))
i += 2;
else
i++;
StringBuilder是可变字符串。
StringBuilder builder=new StringBuilder();
builder.append(ch); //append a character
builder.append(str); //append a string
控制台输入:需要将标准输入System.in与一个Scanner对象关联
Scanner in=new Scanner(System.in);
Scanner有nextLine,next(以空格分开),nextInt,hasNext,hasNextInt等方法。
控制台输出:用标准输出System.out
System.out.printf可以控制输出格式。%后面加d,f,s,c表示十进制整数、浮点数、字符串、字符。System.out.printf("%8.2f",x);以宽为8,小数位数为2输出。
文件输入:从文件中读取用 Scanner in=new Scanner(new File("C:\\mydir\\file.txt"));
这里反斜杠需要两个,如果文件不存在,那么会发生异常。
文件输出:写入文件时需要用PrintWriter对象, PrintWriter out=new PrintWriter("file.txt");
注意Scanner中参数为File,而PrintWriter中参数为String(文件名)。
switch语句中,case标签必须是整数或枚举变量,不能测试字符串。
java.math包中有两个表示大数据的类BigInteger和BigDecimal。其加减乘除用add、substract、mutiply、divide表示。
BigInteger c=BigInteger.valueOf(100);
BigInteger b=g.mutiply(BigInteger.valueOf(10000));
数组是存储同一类型的数据的集合,它是引用类型。
声明及初始化:int[] a;int a[];int b[]={2,3,5}; //左边不能有数据大小
长度:array.length,长度可以为0
for each: for(int x:b) //遍历b
System.out.println(x);
还可以用如下方式打印数组:System.out.println(Array.toString(b));
数组的拷贝: int[] lucky={2,4,6};
int[] good=Array.copyof(lucky,lucky.length*2); //good={2,4,6,0,0,0}
这里多余的元素赋值0,如果是boolean类型的,多余元素赋值为false。
排序:int[] a=new int[1000]; ... ...
Array.sort(a); //用快速排序将a从小到达排序
多维数组的for each循环:
double[][] a=......;
for(double[] row:a)
for(double value:row)
System.out.println(value);
也可以用System.out.println(Array.deepToString(a));输出。
不规则数组:java实际没有多维数组,只有一维数组,多维数组可以理解为是“数组的数组”。
int [][] old=new int[4][];
for(int i=0;i<3;i++)
old[i]=new int[i+1];
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。
public class Test1 { public static void main(String[] args) throws UnsupportedEncodingException{ split("我ABC",4); split("我ABC汉DEF",6); /** * 对于UTF-8:‘我’占3个字节,‘a’占1个字节 * 对于java采用的UTF-16,‘我’占2个字节,‘a’占2个字节,不过他们前面貌似还有两个字节(feff),表示规则吧 * 所以‘我’.getBytes("UTF-8")得到4,‘我们’.getBytes("UTF-8")得到6 * 对于GBK,‘我’占两个字节,‘a’占一个字节 */ //System.out.println("我a".getBytes("UTF-16").length); } public static void split(String source,int num) throws UnsupportedEncodingException{ int k=0; String temp=""; for (int i = 0; i <source.length(); i++){ byte[] b=(source.charAt(i)+"").getBytes("GBK");//"我".getBytes("UTF-8")得到3 k=k+b.length; if(k>num){ break; } temp=temp+source.charAt(i); } System.out.println(temp); } }
相关推荐
这是一个非常不错的电子书,里面描述了笔记本的基本构造,想要对笔记本进一步了解的,可以看下!
网络规划设计师学习笔记,分享给有需要的人,介绍软考网络规划设计师所需要学习的计算机网络基本原理、网络规划设计的基本概论、网络资源设备、网络安全相关知识点。
Zynq学习笔记(基本设计流程),详细介绍了Zynq的学习过程。
设计模式1,包含了设计模式的基本介绍,以及状态机模式的读书笔记
Verilog数字系统设计教程前三章读书笔记 一些案例+基本语法规则
软件设计模式的基本例子和笔记总结
SSH2笔记本电脑基本信息管理系统毕业设计, SSH2笔记本电脑基本信息管理系统毕业设计
深圳大学《C语言程序设计》笔记的重点笔记是该课程的核心内容,涵盖了C语言程序设计的基本概念、语法、数据类型、控制结构、函数、指针、数组、结构体、文件操作等方面的知识点。该笔记采用了多种形式(如思维导图、...
基于SSH2笔记本电脑基本信息管理系统 │ 基于SSH2笔记本信息管理系统运行演示.avi 20.07 MB │ 基于SSH2笔记本信息管理系统运行演示.txt 1.09 KB │ 数据库设计 报告模板9-9.docx 1.37 MB │ 数据库设计实习要求.ppt...
电源设计比较好的学习资料,包含各种基本拓扑和设计应用的基本概念及问题
(4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识; (5) 熟练掌握常用数据结构和常用算法; (6) 熟悉数据库、网络和多媒体的基础知识; (7) 掌握C程序设计语言,以及C++、Java中的一种程序设计...
在硬件架构上笔记本电脑和台式机是基本相同的,但他们的设计目的不相同,笔记本电脑的设计目的就是为了在保证便携性的前提下追求稳定性,高性能,低能耗和多元化的功能,相比之下,台式机则更加注重兼容性和性能。...
JSP基于SSM云笔记资料文件共享网页设计源码+数据库 ## 前台框架: Bootstrap(一个HTML5响应式框架) ## 开发环境:myEclipse/Eclipse/Idea都可以 + mysql数据库 ## 后台框架: SSM(SpringMVC + Spring + Mybatis) (1...
全面介绍Visual C++开发的基本理论知识和营业系统开发的实践经验
硬件初学者学习笔记基本电子元件基础知识资料,可供电路设计硬件人员学习参考。
Python-程序设计语言-笔记 Python-程序设计语言-笔记全文共49页,当前为第1页。Python-程序设计语言-笔记全文共49页,当前为第1页。Python 程序设计语言 笔记 Python-程序设计语言-笔记全文共49页,当前为第1页。 ...
这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有创新和亮点的毕业答辩基本达不到老师的要求。 现在学长为你们准备了ASP.NET毕业设计项目,需要的自取哦。计算机毕业设计论文, 毕设论文,毕设练手好项目基于...
JSP基于SSM云笔记资料文件共享网设计可升级SpringBoot毕业源码案例设计 前台框架: Bootstrap(一个HTML5响应式框架) 开发环境:myEclipse/Eclipse/Idea都可以 + mysql数据库 后台框架: SSM(SpringMVC + Spring + ...
大型企业网络设计的基本思想: 1 传输介质简介 2 传输介质分类 2 同轴电缆 2 比较 2 双绞线 2 比较 2 分类 2 光纤 3 各种以太网标准比较 3 单模光纤与多模光纤的比较: 3 光纤连接器种类 3 串口电缆 4 冲突域 4 定义...