JAVA学习笔记(1-32)
1:数据的输入中,也需要提前声明变量。java区分大小写,注意保留字的问题,注意分号。
2:用import调用一个类。用new新建一个对象,相当于c中的malloc。
3:用final定义一个宏,相当于#define PI 3.1415926 用final表示为:final double PI 3.1415926 注意:需要加入类型。
4:java中的单字节被 byte代替。
5:变量的赋值,以及数字的运算上没有变化。注意除法,5/9 = 0。
6:数字后面加相应的字母表示相应的类型,比如1.0f和1.0F表示float类型,1.0d和1.0D表示double类型。
7:自增自减和强制类型转换一样适用,注意强制类型转化的时候大的转换成小的必须显式的声明,大的转换小的可能丢失数据精度。
8:char ‘a’; 和 char “a”; 不一样的地方在与第一个声明a是一个字符,第二个声明a是一个字符串。
9:注意在java中,char 表示2个字节,只有byte表示1个字节。
10:java中char只能声明一个字符,要是声明字符串,我们需要String类型。并且我们可以给String 类型的字符串进行字符串的加法和减法操作。
11:注意命名规则:
变量名和方法:如果只有一个单词,则小写,如果有多个单词,则第一个单词小写,其余的单词每个首字母大写。
类名:类名中的每个单词首字母都应该大写。
还有一般大写字母中的单词之间常用下划线隔开。并且一般使用完整的单词更具有描述性。
12:next()方法用来读取以\n \f \t ’ ’ 结束的字符串。
13:Integer.parseInt : Integer中的parseInt方法将一个字符串转化成Int类型。
14:注意要是需要格式化输入输出的话,用System.out.printf(” %d”,s); 格式和printf的格式一致,但是注意如果需要输出一个%,那么应该%%。
15:两种产生随机数的方法:
(1):int number1 = (int)(System.currentTimeMillis() % 10); //函数本身返回一个long类型的,但是可以通过强制类型转化和求余的方法将数字控制在想要的范围。例子中就是将数字控制在了0到10之间。
(2):int number1 = (int)(Math.random() * 10); //Math.random()函数的返回值是一个双精度的值,0.0 <= d <= 1.0,我们的例子会返回一个从1到10的值。
16:int 类型和boolean之间不能相互强制类型转换:
boolean a = true;
int b = (int)a;
这样是错误的。
17:有关java的数组:我们需要首先声明一个类型:
c语言这样:int a[5];
java这样:int[] a = new int[5]; //new这个过程需要我们显式的指出来。那好,再顺便说说这个方式,我觉得这样声明数组更容易理解,就像我们声明变量一样,
int a = 5; int就是a的类型,现在int[] a = new int[5]; a数组的类型就是int[] ,是一个数组类型,后面我们再为它分配5个int的类型的空间。
18:java图形显示函数:JOptionPane.showInputDialog()中,第四个参数的意思是输入窗口之前的图标,有以下几个选项:
JOptionPane.INFORMATION_MESSAGE:一个字母i,表示信息。
JOptionPane.ERROR_MESSAGE :错误的小x
JOptionPane.PLAIN_MESSAGE:什么信息也没有
JOptionPane.WARNING_MESSAGE:一个三角形中一个”!”
19:不要用浮点数来设置标志位的循环,例如下面的代码,实际上就是一个无限循环,
double i = 1;
double sum = 0;
while(i != 0){
sum += i;
i -= 0.1;
}
System.out.println(sum);
因为i的值最后也只是近似的等于0,并不会实际等于0。
20:定义和声明不同,定义指的是定义的条目是声明,而声明会为被定义的条目分配内存。
21:java中的方法就是c语言中的函数,之所以叫方法,原因是c是面向过程的,java面向对象,假设我在add类下有main,和sum两种方法,除了main方法不能调用之外,其他的方法都是可以相互调用的,而且在别的类里面,我也可以通过add.sum来调用sum方法。
22:java中的重载方法,主要是针对方法名相同,但是参数不同的情况。针对参数不同的情况进行“精确”匹配。后面注意区分重载和覆盖的不同。
23:在for循环头中声明的变量的作用域是整个for循环。
24:产生随机数和随机字符的方法。(很实用)
25:java的数组需要我们显式的为其分配空间,例如:int[] array = new int[5]; 并且array的长度我们可以通过array.length得到。
java对于数组的遍历提供简单的方法:例如遍历array
for(int u:a)
{
System.out.print(u);
}
26:复制数组的方法有三种:
(1):使用循环语句逐个复制元素。
(2):使用System类中的静态方法arraycopy。 System.arraycopy(a,0,b,0,a.length); 表示把a从0号元素开始全部拷贝一份给b。
(3):使用clone方法复制。
27:java中数组和c语言本质上还是一样的,对于给方法中传递的数组,我们传进去的还是数组的引用,所以可以在方法中修改数组的值。但是变量是不可以的。
28:java可以把类型相同但是个数可变的参数传递给方法。
29:慢慢的,你得有一种方法或者你得有一种意识去让自己的程序通过各种方法变得容易让人理解和读懂。
30:查找方法:线性查找法和二分查找法。
线性查找法:依次遍历,找到返回,时间复杂度是O(n);
二分查找法:适合于已经排好序的情况,这样时间复杂度是O(log(n))
public static int binarySearch(int[] list,int key){
int low = 0;
int high = list.length - 1;
while(low <= high){
int middle = (high+low)/2;
if(key > list[middle]){
low = middle + 1;
}
else if (key == list[middle]){
return middle;
}
else{
high = middle - 1;
}
}
return -low-1;
}
31:几种常见的排序方法:
(1):选择排序:互换元素,每次得到目前最大或者最小的一个,时间复杂度O(n^2)
public static void selectSort(int[] list){
for (int i = 0; i <list.length ; i++) {
for (int j = i+1; j <list.length ; j++) {
if(list[i] < list[j]){
int temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
}
}
(2):插入排序,每次反复得到一个元素,比较移动放到适合的位置。
public static void insertSort(int[] list){
for (int i = 1; i < list.length; i++) {
int current = list[i];
int k;
for ( k =i-1 ; k>=0 && list[k] > current ; k--) {
list[k+1] = list[k];
}
list[k+1] = current;
}
}
(3):桶排序,先初始化桶全为0,然后每读取一个数据就给相应的桶加1
public static int[] bumpSort(int[] list){
int[] bump = new int[10000];
for (int i = 0; i < list.length; i++) {
bump[list[i]]++;
}
return bump;
}
for (int i = 0; i < bump.length; i++) {
//for (int j = 1 ; bump[i] >= j ; j++) { //这个条件是不剔重复输出
//if(bump[i] >= 1){ //这个条件是剔重的输出
System.out.print(i+" ");
}
}
32:Arrays类:
在java中,为我们提供了一个Arrays类去处理我们的有关数组的排序和二分查找以及判断两个数组是否相等的方法,例如:
java.util.Arrays.sort(数组名); 可以对一个数组进行排序。
java.util.Arrays.sort(数组名,0,5); 对一个数组的0号元素到5号元素进行排序,
java.util.Arrays.binarySearch(数组名,’查找字符’); 对‘查找字符’元素在数组中进行二分查找。
java.util.Arrays.equals(数组名,数组名); 比较两个数组是否相同,相同返回true,不相同返回false。
版权声明:本文为博主原创文章,未经博主允许不得转载。
JAVA学习笔记(1-32)的更多相关文章
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记--Swing用户界面组件
很多与AWT类似. 事件处理参考:Java学习笔记--AWT事件处理 1.设计模式: 模型:存储内容视图:显示内容控制器:处理用户输入· 2. 文本输入常用组件 2.1 文本域: JLabel lab ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- java学习笔记01--数据类型
java学习笔记01--数据类型 java数据类型划分 分为两大类型: 1)基本数据类型:类似于普通的值. 2)引用数据类型:传递的是内存的地址. 浮点类型实际上就是表示小数. java基本数据类型 ...
- 20145231第二周Java学习笔记
20145231 <Java程序设计>第2周学习总结 教材学习内容总结 本周的学习采用的依然是先看课本,再看视频,然后实践敲代码,最后根据学习笔记总结完成博客. 第三章:基础语法 知识点比 ...
- Java学习笔记之---方法和数组
Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...
- Java学习笔记之---流程控制语句
Java学习笔记之---流程控制语句 (一)循环语句 (1)if语句 if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if(i%2!=0){ System.out.println( ...
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
随机推荐
- Linux监控实战-2
vmstat命令 用法:vmstat 1 --->每个1s打印信息; vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存 ...
- it市场
SAP收购Sybase意欲何为 http://tech.diannaodian.com/dw/data/sybase/2012/0925/199681.html 德国行业管理软件解决方案提供商SAP宣 ...
- backbone学习总结(一)
入职第三天,新公司项目用到backbone+underscore+require等框架,前两天把项目的开发环境都配置好啦,项目也能跑起来,现在准备好好学习公司自己的框架以及用到的框架,有点想吐槽,开发 ...
- SparkConf加载与SparkContext创建(源码阅读四)
sparkContext创建还没完呢,紧接着前两天,我们继续探索..作死... 紧接着前几天我们继续SparkContext的创建: 接下来从这里我们可以看到,spark开始加载hadoop的配置信息 ...
- Index was outside the bounds of the array. (Microsoft.SqlServer.Smo)
本地ssms是 安装Sqlserver 2008 r2 自带的 远端的server是sqlserver2014 可以连接,可以执行查询语句.但是,不能使用ssms生成对象的脚本.推测ssms 2008 ...
- 转 strace
转自http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Li ...
- [AIR] 获取U盘,打开U盘
示例: 获取存储卷的方法: package com.controls { import flash.events.StorageVolumeChangeEvent; import flash.file ...
- javascript type操作
var a; type a;//结果为undefined type b;//结果也是undefinedalert(a);//弹出undefinedalert(b);//错误代码 上述代码,type ...
- Cacti监控Centos抓包unreachable - admin prohibited
:: 抓包发现总是有这个出现,而且是跟在GetRequest后面. 打开iptables配置: 最开始网上找的配置语句是这个, -A INPUT -p udp -m udp --sport -j AC ...
- Android SQLiteOpenHelper类的使用
SQLiteOpenHelper类是Android平台提供的用于SQLite数据库的创建.打开以及版本管理的帮助类.一般需要继承并这个类并实现它的onCreate和onUpgrade方法,在构造方法中 ...