我的java学习笔记(一)
第一个java程序,还是熟悉的hello world
- public class FirstSample { //类
- public static void main(String[] args) //方法
- {
- System.out.println("Hello World!"); //输出语句“Hello World!”
- }
- }
输出非常无趣,就是在控制台输出 Hello World!
程序里值得注意的地方有就是:
1.java程序是区分大写和小写的,即为大写和小写敏感。
2.类是构建所有java应用程序和applet的构建块。Java应用程序中的所有内容都必须放置在类中。源码的文件名称必须与公共类的类名同样。
3.依据java语言的规范,main方法必须声明为public。main中的方法必须是静态的。
Java是一种强类型语言。
在java中一共同拥有8种基本类型,4种整型、2种浮点型、1种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值得boolean类型。Java中没有不论什么无符号类型。
类型 |
存储需求 |
int |
4个字节 |
short |
2个字节 |
long |
8个字节 |
byte |
1个字节 |
在java中有两种浮点类型。
类型 |
存储需求 |
float |
4个字节 |
double |
8个字节 |
Java中char类型用UTF-16编码 一个代码单元。
Boolean类型有两个值:false和true,用来推断逻辑条件。整型值和布尔值之间不能进行相互转换。
在java中,利用keywordfinal指示常量。
- final double MONEY = 50;
keywordfinal表示这个变量仅仅能被赋值一次,一旦被赋值之后,就不可以再更改了。
假设一个常量在一个类中的多个方法中使用,通常将这些常量成为类常量。使用keywordstatic final设置一个类常量。
- Public static final double MONEY = 50;
假设一个变量被声明为public,那么其它类的方法也能够使用这个常量。
在java中整数被0除将会产生一个异常,而浮点数被0除将会得到一个无穷大或NaN结果。
在java中的位运算符有: & 与 ,| 或 ,^ 异或,~非,<< 、>>左移和右移。
- int a = (n & (1 << 3)) >> 3; //检查n第四位是不是1。
>>>运算符将用0填补高位,>>运算符用符号位填补高位。没有<<<运算。
Java字符串就是Unicode字符序列。
String类的substring方法能够从一个较大的字符串提取出一个子串。
- String a = “hello”;
- String b = a.substring(0,4);//b为 hell b的长度为4-0=4
Java语言同意使用+号连接两个字符串。当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串。
- int age = 13;
- String a = “abc” + age; //a为abc13
使用equals方法检測两个字符串是否相等。
- a.equals(b); // 相等返回true ,不等返回false。
假设想要检測两个字符串是否相等,而不区分大写和小写,能够使用equalsIgnoreCase方法。
- “Hello”.equalsIgnoreCase(“hello”);
空串和值为null串的检測方法
- (str != null && str.length() != 0)
首先要检查str不为null。假设在一个null值上调用方法,会出现错误。
假设须要使用很多小段的字符串构建一个字符串,那么应该试一试StringBuilder类
- StringBulider builder = new StringBuilder();
- bulider.append(ch);//加入字符
- builder.append(str);//加入字符串
- String all = builder.toString();//把完整的字符串赋给all
在java中的输入输出实例
- import java.util.*;
- public class InputTest {
- public static void main(String[] args)
- {
- Scanner in = new Scanner(System.in);//构造Scanner对象
- System.out.print("你叫什么名字?");
- String name = in.nextLine();
- //读入字符串
- System.out.print("你多大了?");
- int age = in.nextInt();
- //读入一个整数
- System.out.println("Hello," + name + " 你如今已经" + age + "岁了");
- }
- }
块即符合语句是指有一对花括号括起来的若干条件简单的java语句。块确定了变量的作用域。一个块能够嵌套在还有一个块中。不能再嵌套的两个块中声明同名的变量。
switch语句中
case标签能够是:
1.类型为char、byte、short或int
2.枚举
3.从javaSE7開始,case标签还能够是字符串字面量。
数组是一种数据结构,用来存储同一类型值得集合。
数组的声明
- int[] a = new int[10];
- int a[] = new int[10];
创建一个数字数组时,全部元素都初始化为0.boolean数组的元素会初始化为false。对象数组的元素则初始化为一个特殊值null,这表示这些元素未存放不论什么对象。
假设想获得数组中的元素个数,能够使用array.length
- for(int i = 0;i < a.length;i++)
- System.out.println(a[i]);
遍历数组的还有一种方法
- for(int element:a)
- System.out.println(elelment);
要想对数值型数组进行排序,能够使用Arrays类中的sort方法
- Arrays.sort(a);
Math.random方法将返回一个0到1之间的随机浮点数,就能够得到从0到n-1之间的一个随机数。
- int r = (int)(Math.random()*n);
几个小应用样例
1.抽奖问题
- import java.util.*;
- public class test001 {
- public static void main(String[] args)
- {
- Scanner in = new Scanner(System.in);
- System.out.println("你能抽多少个数字?");
- int a = in.nextInt();
- System.out.println("最大的数字是什么?");
- int n = in.nextInt();
- int[] num = new int[n];
- for(int i = 0; i < num.length;i++)
- {
- num[i] = i + 1;
- }
- int[] result = new int[a];
- for(int i = 0 ; i <result.length;i++)
- {
- int rad = (int)(Math.random() * n);
- result[i] = num[rad];
- num[rad] = num[n-1];
- n--;
- }
- Arrays.sort(result);
- System.out.println("抽奖结果为:");
- for(int ele : result)
- {
- System.out.println(ele);
- }
- }
- }
2.银行存钱的利息问题
- public class test002 {
- public static void main(String[] args)
- {
- final double Begin = 10;
- final int R = 6;
- final int Y = 10;
- double[] Rate = new double[R];
- for(int i = 0; i < Rate.length; i++)
- {
- Rate[i] = (Begin + i) / 100.0;
- }
- double[][] bala = new double[Y][R];
- for(int i = 0; i < bala[0].length; i++)
- {
- bala[0][i] = 10000;
- }
- for(int i = 1;i < bala.length; i++)
- {
- for(int j = 0; j < bala[i].length; j++)
- {
- double oldbala = bala[i - 1][j];
- double up = oldbala * Rate[j];
- bala[i][j] = oldbala + up;
- }
- }
- for(int i = 0; i < Rate.length;i++)
- {
- System.out.printf("%9.0f%%",100 * Rate[i]);
- }
- System.out.println();
- for(double[] r : bala)
- {
- for(double b : r)
- {
- System.out.printf("%10.2f",b);
- }
- System.out.println();
- }
- }
- }
3.使用不规则数组打印杨辉三角
- public class test003 {
- public static void main(String[] args)
- {
- final int m = 10;
- int[][] a = new int[m][];
- for(int i = 0; i<m ; i++)
- {
- a[i] = new int[i+1];
- }
- for(int i = 0; i < a.length;i++)
- {
- for(int j = 0; j <a[i].length; j++)
- {
- int temp = 1;
- for(int k = 1 ; k <= j; k++)
- {
- temp = temp * (i - k + 1) / k;
- }
- a[i][j] = temp;
- }
- }
- for(int[] r : a)
- {
- for(int ele : r)
- {
- System.out.printf("%4d",ele);
- }
- System.out.println();
- }
- }
- }
我的java学习笔记(一)的更多相关文章
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
随机推荐
- HDU5015 233 Matrix(矩阵高速幂)
HDU5015 233 Matrix(矩阵高速幂) 题目链接 题目大意: 给出n∗m矩阵,给出第一行a01, a02, a03 ...a0m (各自是233, 2333, 23333...), 再给定 ...
- java枚举的使用
定义枚举 public enum YesOrNo { YES("是") , NO("否") ; private String text ; private in ...
- EF 分离实体
具体步骤: 新建测试项目:如图 其中Respository和Model层均为类库项目, 1.在Respository层添加ADO.NET实体数据模型, 2.复制Model.tt文件到Model层,这是 ...
- jquery 弹出登陆框,简单易懂!修改密码效果代码
在网上找了一大堆,看的眼花瞭乱,还是研究原码,自已搞出来了! ui原地址:http://jqueryui.com/dialog/#modal-form 可以把js,css下载到本地,要不然不联网的话, ...
- vb实现多用户登录
利用vb实现多用户登录,主要是将vb与数据库实现链接,这个问题在作品展中我们的软件“天天迹录”的登录时用到,但是当时自己只是知道有这么个功能,但是那些代码的含义并不明白,在3个月后的我又有机会接触到它 ...
- 使用NaturalDuration获取音频的时长
#region customizeTime ) sec = " + mediaElement.Position.Seconds.ToString(); else sec = mediaEle ...
- Windows Phone开发(28):隔离存储B
原文:Windows Phone开发(28):隔离存储B 上一节我们聊了目录的操作,这一节我们继续来看看如何读写文件. 首先说一下题外话,许多朋友都在摇摆不定,三心二意,其实这样的学习态度是很不好的, ...
- 【原创】java中的父进程子进程 —— 坑爹的java Runtime.getRuntime().exec
最近有一个需求,需要用一个java进程启动多个子进程来完成并发任务.由于必须给用户完成任务的反馈,所以需要父进程记录子进程的生命周期. exec方法返回一个Process对象,在当前进程内调用该对象的 ...
- J2SE习题(2)
第四.五周练习题 1.a. Define a class called BlogEntry that could be used to store an entry for a Weblog. Th ...
- acdream 1211 Reactor Cooling 【边界网络流量 + 输出流量】
称号:acdream 1211 Reactor Cooling 分类:无汇的有上下界网络流. 题意: 给n个点.及m根pipe,每根pipe用来流躺液体的.单向的.每时每刻每根pipe流进来的物质要等 ...