Java学习

排序:https://www.cnblogs.com/onepixel/articles/7674659.html
Windows中 换行 \r\n Linux中 换行 \n

  1. 编译环境 compiler 运行环境 install JREs 在window下的references里
  2. 快捷键:首选项 java editor templates

1.垃圾回收
当内存不在被引用时,如 person p = new person() p = null; finalize() 会回收对象
System.gc() 向虚拟机发出申请,但会不会回收不知道
2.this 相当于对象 this()调用构造方法时 要位于首行。
3.static修饰的变量成为静态变量,为所有的对象共享,可以直接通过类名来访问;static只能修饰成员变量,不能修饰方法中的局部变量;static修饰的方法称为静态方法,可以通过类名直接调用;静态方法只能访问类的静态方法(静态变量,静态方法)
4.普通代码块:在方法名后或方法体内用大括号{}括起来的一段代码
构造代码块:
静态代码块:static修饰的代码块,它是最早执行的代码块
5.内部类

1.
image.png

6.类中有有参的构造方法时,默认的无参构造方法便不会被创造
7.子类中没有显式地调用父类的构造方法,那么将自动调用父类中不带参中的构造方法;如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。子类中默认有final()
https://www.cnblogs.com/z-sm/p/7604227.html
8.final 修饰的类不能被继承
修饰的方法不能被子类重写
修饰的变量是常量,初始化后不能被修改。

  1. image.png
  2. 变量名 instanceof 类名
    判断一个对象是不是一个类或接口的实例
    11.多线程
    1.线程的创建: 继承Thread 重写run方法 创建对象 对象.start
    实现Runnable接口 重写run方法 创建对象 创建并开启线程对象

12.线程的生命周期
新建 就绪 (阻塞) 运行 死亡
13.线程的调度
1.优先级:setPriority() getPriority() 设置和读取优先级
MAX_PRIORITY NORM_PRIORITY MIN_PROIRITY
对象.setPriority(Thread.MAX_PRIORITY);
2.线程休眠 Thread.sleep(2000); 休眠两秒
3.线程让步 yield() 方法不会使线程阻塞。只是将线程转换为就绪状态,也就是正在执行的线程暂停一下,线程调度器重新调度一次,有可能还会将暂停的程序调度出来继续执行,这就是线程让步。 Thread.yield();
4.线程插队 join()
对象.join() 则该对象就会停止运行
5. 后台线程 setDaemon(boolean on) 若参数为true 则为后台线程
isDaemon() 判断一个线程是不是后台线程
14.线程同步
synchronized(obj){

}
用synchronized 修饰run 方法也可以提供线程同步
15.死锁
16.Integer 类的构造方法
public Integer (int value)
public Integer (String s)
两者都是创建一个Integer对象,它表示int值 这样一个Integer对象在数值上与int无疑
但它是对象

       int i=10;
       Integer in= new Integer ("10");
       Integer at =new Integer(20);
       String s = new String("20");
       System.out.println(in+at);                       //30
       System.out.println(in.valueOf(s));          //20
       System.out.println(i+in);                         //20
       System.out.println(in instanceof Integer);  //true
       System.out.println(in.toString() instanceof String);  //true

自动装箱和拆箱机制:基本类型值与包装类的对象相互自动装换。

Integer in =10;           //自动装箱成Integer
       System.out.println(in);//10
       int i = in;                  //自动拆箱为int
       System.out.println(i);//10

Scanner类的用法

 Scanner sc = new Scanner (System.in);//System.in一定要有
      System.out.println("输入内容,当内容为exit时程序结束");
      while(sc.hasNext())    //判断是否有下一个输入
      {
          String s = sc.next();   //nextInt  nextLong 等
          if(s.equals("exit"))   //equals 与== 是不一样的
          {
              break;
          }
          System.out.println("输出的内容为"+s);
      }
      sc.close();//释放资源
    }

17.filewriter的用法


image.png

18.IO异常处理


image.png

19.打包
  1. 新建一个文件夹做目录(编译地址在生成的java文本目录下进行)
    javac -d 目录地址 文件名 会在目录地址生成一个与包名相同的文件夹


    image.png
  2. 新建一个文件 写配置清单
    Main-Class:空格包名.类名
    回车


    image.png

    3.编译 (编译在目录地址下进行)
    jar -cvfm 名字.jar 清单名 生成的文件夹名(即包名)
    20.IO流
    1.字节流
    接口 OutputStream InputStream
    类(FIleOutputStream BufferOutputStream FileInputStream BufferInputStream)
    InputStream 类的方法
    void close()
    int read() 从输入流中读取数据的下一个字节
    int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中,返回读取的字节数
    int read(byte[] b,int off,int len) 将输入流中最多len个数据字节读入byte数组

OutputStream 类的方法
void close()
void flush()
void write(byte[] b) 将b.length个字节从指定的byte数组写入此输入流
void write(int b) 将指定的字节写入此输入流
void write(byte[] b,int off,int len) 将指定byte数组中从偏移量off开始的len个字节写入此输入流

FileInputStream fis = new FileInputStream("read.txt");
int n=512;
byte buffer[] = new byte[n];
while(fis.read(buffer,0,n)!=-1)  //
{
   System.out.println(new String(buffer));
}

image.png

image.png
image.png

image.png

image.png

image.png

image.png

image.png

重点掌握 FileInputStream FileOutputStream BufferInputStream BufferOutputStream
的用法
read() 慢 read(byre[] b) read(byte[] b,int off,int len) 快
BufferInputStream 的写法 是将 FileInputStream 对象传入 装饰设计模式

JSP
<% %> java程序片段 在service方法中
<%= %> 输出表达式 在service方法中的out.print();之中,所以不可加分号
<%! %> 声明成员 与service方法同级。如成员变量,方法等

<%= %> 与什么都不写的区别
<%= %> 是在out.print();函数中,可以使用变量 <% int x=1,y=2;%> 则<%= x+y%> 会在页面输出3
什么都不写意味在<body></body>标签内写x+y 会输出x+y

注释:
html 会出现在html代码和java代码中
java // /* */ /****/ 只会出现在java代码中
jsp <%-- --%> 不会出现在java代码和html代码中
java代码就是jsp被编译的java文件 html代码就是在显示页面上 右键-->查看页面源代码

22.commons-dbutils-1.6.jar作用
在最基层查询数据的时候,我们通常用的则是Statament,这个就是将sql语句直接发给sql数据库,当外界发生变化的时候,很容易影响结果,很容易受到占位符的影响。于是就产生了进化版本,使用Preprastament替代statemnet,这个则是预编译的意思。直接则是将sql语句缓存起来,加入其他的占位符,外界也没有办法影响到预编译的结果。
可以说,Preprastament是Statament升级后的产物。查询的结果使用ResultSet结果
至于今天说的这个架包commons-dbutils-1.6.jar,里面主要是一种查询方法,但是这个工具的优点就是可以将数据整理成各种结构。
QueryRunner queryRunner=new QueryRunner();//直接与数据库沟通交流的主要方法
,里面对PreparedStatement方法进行了包装,根据数据结果,选择对应的方法,可以将数据结果打包成各种不通的数据结构,是使用框架的时候必备的框架。

23.vector的用法
https://blog.csdn.net/weixin_41743247/article/details/90635931
24.java符号&、| 、~、^、&&、||、!

位逻辑运算符:
&:
位与运算符,只有两个操作数都是true,结果才是true。
| :
位或运算符,只有两个操作数都是false,结果才是false。
~:
位非运算符:如果位为0,结果是1,如果位为1,结果是0.
取反后为补码,然后在取回来  其实  ~n=-(n+1)  记住就行
^:
位异或运算:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1。
int i=15 j=2    i^j=13
位同或运算:两个数转为二进制,然后从高位开始比较,如果相同则为1,不相同则为0。java中并没有同或运算符,可以通过异或转换得到。同或运算 = 异或运算  ^  1

逻辑运算符:
&&:
逻辑与运算,也是只有两个操作数都是true,结果才是true。但是如果左边操作数为false,就不计算右边的表达式,直接得出false。类似于短路了右边。
||:
逻辑或运算,也是只有两个操作数都是false,结果才是false。但是如果左边操作数为true,就不计算右边的表达式,直接得出true。类似于短路了右边。
!:
逻辑非运算,对操作数取反。

25


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • 作为一个程序员,在找工作的过程中,都会遇到笔试,而很多笔试里面都包括java,尤其是作为一个Android开发工程...
    仇诺伊阅读 7,965评论 15 295
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,534评论 0 6
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,766评论 0 10
  • 我们不干好什么 死亡 我们干了什么 死亡 恶心的上辈子 想我再继续痛苦的付出 去死吧 没什么重要的,除了死亡 其他...
    我打不了太极阅读 108评论 0 0
  • mlxqmmd阅读 97评论 0 0