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); } }
相关推荐
通过上述内容的介绍,可以看出FPGA自学笔记——设计与验证公开版不仅涵盖了FPGA的基本原理和技术细节,还深入探讨了FPGA技术的发展趋势及其在实际应用中的重要性。这对于初学者来说是非常宝贵的学习资源。
在这些笔记中,你会了解到机械设计的基本概念,包括力学原理、材料科学、热力学以及机械传动等基础知识。这部分内容是所有后续深入学习的基础,对理解机械系统的运作至关重要。 二、机构与构件设计 笔记详细介绍了...
Zynq学习笔记(基本设计流程) Zynq学习笔记是学习Zynq的基本设计流程的笔记,涵盖了Zynq的基本设计流程和相关的知识点。本笔记将指导读者如何使用Vivado2013.2设计工具来创建一个Zynq项目,包括创建一个新的项目、...
Verilog的基本设计单元是模块(block)。一个模块由两部分组成,一部分描述接口,另一部分描述逻辑功能,即定义输入是如何影响输出的。模块的端口声明了模块的输入输出口,其格式如下:module 模块名(口1, 口2, 口3,...
基于SSM的云笔记系统设计中,前端展示界面和后端编辑界面是两个主要部分。前端界面主要负责用户的交互,包括用户注册、登录、笔记的搜索和查看。后端界面则是管理员进行笔记管理的地方,如数据信息管理、成员管理、...
通过深入学习《软件设计师学习笔记.pdf》,读者不仅可以掌握软件设计的基本理论,还能了解实际工作中可能遇到的问题及解决方案,为成为一位优秀的软件设计师打下坚实基础。这份笔记无疑是软件设计师学习道路上的一盏...
《软件设计师个人学习笔记》是一份详实的学习资料,涵盖了软件设计师考试的重要知识点。这份笔记以照片形式呈现,便于读者更直观地理解和记忆。以下是对笔记内容的详细解析: 第一章 计算机网络概论 在这一章中,...
网页设计是互联网时代不可或缺的一部分,它涉及到用户与网站交互的视觉和功能体验。"轻笔记网页设计htm"是一个专门关注云笔记类型...这样的设计不仅能满足用户的基本需求,也能提升其在使用过程中的满意度和忠诚度。
FPGA自学笔记--设计与验证的知识点: 1. FPGA的介绍与发展 FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种可以通过编程来配置其逻辑功能和互连结构的集成电路。FPGA的发展经历了从最初简单的逻辑...
《FPGA自学笔记——设计与验证jmb》是一本针对初学者精心编写的教程,旨在帮助读者快速掌握FPGA(Field-Programmable Gate Array,现场可编程门阵列)的基础知识并进行实际的设计与验证。小梅哥,这位业界知名人士,...
下面将详细讨论设计模式的基本理念及其重要性,并列举一些常见的设计模式。 设计模式的核心思想是将经验转化为可复用的解决方案。它通过总结和抽象在实际开发过程中遇到的问题,为开发者提供了一套标准的沟通方式和...
《设计模式学习笔记》主要探讨了GOF的23种设计模式以及类设计的基本原则,旨在帮助开发者理解和应用这些经过时间验证的成熟解决方案。设计模式是面向对象软件设计中的核心概念,它们为解决常见的设计问题提供了标准...
JAVA 程序设计学习笔记是一个详细的学习笔记,涵盖了 JAVA 程序设计的基本概念、语言特征、类库、环境设置、安装等方面的知识点。 1. JAVA 程序设计的基本概念 JAVA 程序设计是一种基于面向对象编程(Object ...
【软件设计师复习笔记资料】 软件设计师作为信息技术领域中的一个重要角色,负责设计、开发和维护软件系统,其专业技能涵盖广泛,包括但不限于编程语言、软件工程、数据库管理、网络技术、操作系统、项目管理等多个...
4. **数据库管理**:介绍了数据库的基本概念、SQL语言、数据库设计原则等,为处理数据存储提供理论支持。 5. **软件工程**:涵盖了软件生命周期的各个阶段,如需求获取、系统分析、设计、编码、测试和维护,强调软件...
然而,从标题“算法设计与分析笔记”以及描述“算法笔记”来看,我们可以尝试围绕算法设计与分析这一主题来构建相关知识点。接下来,将详细介绍与算法设计和分析相关的知识点,包括但不限于算法的基本概念、分类、...
该项目基于Vue技术栈实现了一个云笔记应用,名为“vue-evernote-master”,其设计灵感和功能特点借鉴了知名的云笔记服务——印象笔记。Vue.js作为前端框架,提供了强大的组件化开发能力,使得项目的结构清晰,代码...
《FPGA自学笔记——设计与验证》是一本深入探讨FPGA(Field-Programmable Gate Array)技术的书籍,旨在帮助读者掌握FPGA的设计与验证方法。书本源码V1.3提供了丰富的实例和练习,使学习者能通过实践加深理解。...