Java基本语法笔记
1. 基本格式:
public class HelloWprdApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 10;
num = 30;
System.out.println("num="+num);
System.out.println("num*num="+num*num);
}
}
String args[]:传统的写法,c、c++都用该种写法;
String[] args :Java的写法,但Java也能用上面的方法定义。
实际上String[] args 是定义一字符串数组变量。
在java中,String[] args和String args[] 都可以定义数组。二者没有什么区别。为规范编码,推荐使用String[] args。另外args可以随意改,和其它变量一样,它只不过是一变量名,只要符合变量名规则即可。
打印语句:
System.Out.println(""); 带有换行
System.Out.print(""); 不带有换行
java申明一个类的方法有两种:
<i>public class 类名称要和文件的名称一样,否则不能编译
<ii>class 类名称可以和文件的名称不一样,编译时候生成的是 类名称.class
2.java基本数据类型
数据类型 大小/位 可表示的数据范围 默认值
long(长整数) 64 -2^63~2^63-1 0L
int(整数) 32 -2^31~2^31-1 0
-0x80000000~0x7FFFFFFF -2147483648~2147483647
short(短整数) 16 -32768~32767 0
byte(位) 8 -128~127 0
char(字符) 2 0~255 \u0000
float(单精度) 32 -3.4E38~3.4E38 0.0f 定义为float型的时候,数值的后面要加上f
double(双精度) 64 -1.7E308~1.7E308 0.0d 注意使用浮点型数值的时候,默认使用的是double型,后面加上f的时候才使用float型
boolean 1 flase true flase
当数值发生溢出的时候,会形成循环,即最大值加上1后会变成最小值
强制转换类型的两种方法
Integer.MAX_VALUE+2L 在加的数字后面加上L表示强制转换成长整形
((long)Integer.MAX_VALUE+2) 在加的数字前面加上long实现强制转换
3.常用的转义字符
转义字符 描述
\f 换页
\\ 反斜线
\b 倒退一格
\' 单引号
\r 归位
\" 双引号
\t 制表符tab
\n 换行
4.类型的转换
当表示范围小的数值类型加上大的数值类型的时候,会自动转换成大的数值类型,比如short+int,会自动把结果转换成int型
当数值类型加上字符串的时候,都转换成字符串类型
5.位运算符
位运算符 描述
& 按位与
| 按位或
^ 异或(相同为0,不同为1)
~ 取反
<< 左移位
>> 右移位 正数右移的时候左边补零,负数左边补一
>>> 无符号移位 正数负数右移的时候左边都补零
数组中,数组的名字,即地址存在栈内存中,地址指向的内容存在堆内存中,开辟新的堆内存必须要用关键字new,栈内存中存储的是堆内存的访问地址
当堆空间没有任何栈空间引用的时候,就成为了垃圾空间,等待这垃圾回收机制进行回收
数组的复制:System.arraycopy(i1,3,i2,1,3)源数组名称 源数组开始点 目标数组名称 目标数组开始点 复制长度
6.逻辑运算符优先级

7.方法的定义方式
public static void 方法名字(类型 参数,类型 参数。。。){
程序语句
}
8.可变参数
fun();
fun(1);
fun(1,2,3,4,5);
public static void fun(int... arg){
for(int i=0;i<arg.lenght;i++){
system.out.print(arg[i]+"、");
}
}
9.foreach语法
for(数据类型 变量名称:数组名称)
public static void fun(int... arg){
for(int x:arg){
system.out.print(x+"、");
}
}
10.类的定义
class Person{
private string name;//把属性封装,讲不能通过XX.name访问,必须通过setter和getter方法设置和取得
private int age;//private也可以用-表示
public Person(String name,int age){ //构造函数,和类名同名
this.setName(name);
this.setAge(age);
}
public void tell(){
system.out.println();
}
}
对象的创建和使用
类名 对象名称 = null;
对象名称 = new 类名();
或者
类名 对象名称 = new 类名();
匿名对象
new Person("张三",30).tell();//匿名对象,匿名对象一般是作为其他类实例化对象的参数传递,匿名对象是一个堆内存空间,没有栈空间
类设计分析
<1>根据要求写出类所包含的属性
<2>所有的属性都必须进行封装(private)
<3>封装之后的属性通过setter和getter设置和取得
<4>如果需要可以加入若干构造方法
<5>再根据其他要求添加相应的方法
<6>类中的所有方法都不要直接输出,而是交给被调用处输出
<7> 永远不要继承一个已经实现好的类,只能继承抽象类或者实现接口,因为一旦发生对象的向上转型关系后,所调用的方法一定是被子类所覆写的方法
11.string对象
使用==比较string对象的时候比较的是string的地址
使用.equals方法比较的是string对象的内容
<1>使用string str = new string("hello");创建一个新的string对象,"hello"创建一个对象,new关键字又创建一个对象,所以建议使用第二种方法创建对象
<2>string str = "hello";
注意:字符串的内容不可以修改,所以要避免对字符串的内容进行连续的修改,因为修改一次就要开辟两个新的内存空间,通过断开和连接进行字符串的修改。
要通过StringBuffer类进行修改。
Java基本语法笔记的更多相关文章
- java基础语法笔记
这段时间看了一些java,急了一些笔记,记下一遍以后复习用! 2016-07-24 15:12:40 java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方 ...
- Java 学习笔记(1)——java基础语法
最近抽时间在学习Java,目前有了一点心得,在此记录下来. 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验 ...
- Java编程基础阶段笔记 day04 Java基础语法(下)
day04 Java基础语法 (下) 笔记Notes要点 switch-case语句注意 switch-case题目(switchTest5) 循环执行顺序 if-else 实现3个整数排序 Stri ...
- Java语法笔记
目录 知识点 不支持 恶心事 与C#的区别 组件 学习资料 母版页 知识点 类 静态方法,即可以在类上被调用,也可以在实例对象上被调用. Java类 先执行静态构造函数,再执行静态方法或静态字段,所以 ...
- java JDK8 学习笔记——助教学习博客汇总
java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...
- java JDK8 学习笔记——第16章 整合数据库
第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...
- java jvm学习笔记二(类装载器的体系结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 在了解java虚拟机的类装载器之前,有一个概念我们是必须先知道的,就是java的沙箱,什 ...
- Android(java)学习笔记160:Framework运行环境之 Android进程产生过程
1.前面Android(java)学习笔记159提到Dalvik虚拟机启动初始化过程,就下来就是启动zygote进程: zygote进程是所有APK应用进程的父进程:每当执行一个Android应用程序 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
随机推荐
- 路由知识之ip route 命令中的疑惑
1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...
- iOS开发--QQ音乐练习,后台播放和锁屏界面
一.设置后台播放 首先允许程序后台播放 代码实现 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...
- iOS开发:读取pdf文件
方法一:使用QLPreviewController #pragma mark 浏览存在沙盒的文件 -(void)quickLook { QLPreviewController *QLPreviewV ...
- PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?
PCA, Principle Component Analysis, 主成份分析, 是使用最广泛的降维算法. ...... (关于PCA的算法步骤和应用场景随便一搜就能找到了, 所以这里就不说了. ) ...
- poj3233 矩阵等比数列求和 二分
对于数列S(n) = a + a^2 + a^3 +....+ a^n; 可以用二分的思想进行下列的优化. if(n & 1) S(n) = a + a^2 + a^3 + ....... + ...
- Input checkbox 添加样式背景
<style type="text/css"> .chk_1 { width: 20px; height: 20px; position: absolute; top: ...
- Ajax工作原理(转)
1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...
- dede使用方法----调用导航
在这里,极力推荐学习dede的朋友们观看老李的零基础织梦仿站系列课程的视频,讲的超级棒的~~ 网址链接是:http://www.dede888.com/15daylessons.html. 好了,言归 ...
- Leetcode 86. Unique Binary Search Trees
本题利用BST的特性来用DP求解.由于BST的性质,所以root左子树的node全部<root.而右子树的node全部>root. 左子树 = [1, j-1], root = j, 右子 ...
- 【codeforces 733F】 Drivers Dissatisfaction
http://codeforces.com/problemset/problem/733/F (题目链接) 题意 给出一张n个点的无向图,每一条变有两个特征值:${w,c}$:分别表示这条边的权值为$ ...